diff --git a/assets/text/TODO b/assets/text/TODO index c08cbc6..da2b5a0 100644 --- a/assets/text/TODO +++ b/assets/text/TODO @@ -1,3 +1,4 @@ +Low-priority list: 1) Implement ANSI CSI CU[BDPU] sequences & italic 2) Layers & layout (e.g. for comics, zines, etc.) 3) Implement instrumentation & unit tests, document @@ -10,13 +11,22 @@ High-priority list: 1) unit tools: arrow, {cloud,speech bubble}, curve, measure, pick, polygon, triangle, unicode -2) text tool: a) honour RTL text flow b) navigating w/ cursor keys c) pasting text -3) operators: rotate, scale, shift, slice, tile -4) cleanup & refactor, switch to GTK -5) GUI: +2) operators: rotate, scale, shift, slice, tile +3) cleanup & refactor, switch to GTK +4) GUI: a) replace logo w/ canvas panel in About dialogue b) Settings/Settings window (e.g. autosave, hide cursor on leaving window, ...) c) replace resize buttons w/ {-,edit box,+} buttons & lock button re: ratio (ty lol3) d) {copy,cut,delete,insert from,paste}, {edit asset in new canvas,import from {canvas,object}} +Queue: +1) start @ top, down key til cursor below visible canvas, scroll down, cursor gone GRRRR +2) text tool: impl. backspace & enter, update internal brushPos if updated w/ arrow keys +3) text tool: a) honour RTL text flow b) navigating w/ cursor keys c) pasting text +4) scroll down, apply operator to entire canvas, scroll up +5) flip tool: correctly flip chars e.g. \ -> /, etc. +6) underline FUCKING BROKEN _AGAIN_ +7) select-related {re,un}do bugs +8) clone selection lag + vim:ff=dos tw=0 diff --git a/libroar/RoarCanvasCommandsFile.py b/libroar/RoarCanvasCommandsFile.py index 9c6b80c..91eb620 100644 --- a/libroar/RoarCanvasCommandsFile.py +++ b/libroar/RoarCanvasCommandsFile.py @@ -268,7 +268,7 @@ class RoarCanvasCommandsFile(): else: self.canvasPathName = dialog.GetPath(); self.lastDir = os.path.dirname(self.canvasPathName); if self.canvasSave(event, newDirty=True): - self._pushRecent(pathName) + self._pushRecent(self.canvasPathName) # }}} # diff --git a/libroar/RoarCanvasWindow.py b/libroar/RoarCanvasWindow.py index 55f89b4..f82d91d 100644 --- a/libroar/RoarCanvasWindow.py +++ b/libroar/RoarCanvasWindow.py @@ -73,7 +73,7 @@ class RoarCanvasWindow(GuiWindow): else: if tool != None: rc, dirty = tool.onKeyboardEvent(self.brushColours, self.brushSize, self.canvas, self.dispatchPatchSingle, eventDc, keyChar, keyModifiers, self.brushPos, viewRect) - else: + elif mapPoint != None: self.dispatchPatchSingle(eventDc, True, [*mapPoint, self.brushColours[0], self.brushColours[0], 0, " "] , viewRect) if dirty: self.dirty = True @@ -86,9 +86,12 @@ class RoarCanvasWindow(GuiWindow): self.commands.update(undoInhibit=True) elif tool.toolState == tool.TS_NONE: if tool.external: - self.commands.currentTool, self.commands.lastTool = self.commands.lastTool, self.commands.currentTool - self.commands.update(toolName=self.commands.currentTool.name, undoInhibit=False) self.dropTarget.done() + self.commands.currentTool, self.commands.lastTool = self.commands.lastTool, self.commands.currentTool + if self.commands.currentTool != None: + self.commands.update(toolName=self.commands.currentTool.name, undoInhibit=False) + else: + self.commands.update(toolName="Cursor", undoInhibit=False) else: self.commands.update(undoInhibit=False) return rc