Commit Graph

454 Commits

Author SHA1 Message Date
Isaiah Odhner
454c473eff Grab and tweak wallpaper code
I updated the Windows version to use *W (wide char, unicode) version,
and enabled it and the mac one, changed except: to except Exception:
and tweaked a few other things.

I haven't tested any of this.
2023-04-26 22:00:23 -04:00
Isaiah Odhner
06e2ad41e4 Fix cells inverted outside the textbox to the left of the selection after closing a menu over the region
Normally, only the region with the textbox is updated, when the text selection changes, but if the canvas is refreshed by other means, like a menu, it can show up.
2023-04-26 21:32:42 -04:00
Isaiah Odhner
f6b94f67c4 Fix: refresh canvas when selecting all 2023-04-26 21:29:31 -04:00
Isaiah Odhner
dc6ab4d72e Type hint pyperclip.paste() 2023-04-26 21:27:33 -04:00
Isaiah Odhner
f1652c257a Fix: refresh canvas when pasting
Broken in last commit by adding:

        if "ctrl" in key:
            # Don't interfere with Ctrl+C, Ctrl+V, etc.
            return
2023-04-26 21:25:57 -04:00
Isaiah Odhner
a7619b7721 Copy selected text within textbox, instead of whole textbox 2023-04-26 21:25:57 -04:00
Isaiah Odhner
abb1e9128d Refactor: extract selected_text_range and supporting functions 2023-04-26 21:11:26 -04:00
Isaiah Odhner
df2d19af0a Fix background color of text pasted into textbox 2023-04-26 21:02:32 -04:00
Isaiah Odhner
09a03bdcbf Paste text into textbox 2023-04-26 20:35:13 -04:00
Isaiah Odhner
1c9fb0ca1b Delete/backspace ranges of text 2023-04-26 17:54:00 -04:00
Isaiah Odhner
06836d77bb Add textbox variable to shorten code 2023-04-26 17:24:28 -04:00
Isaiah Odhner
66f0e3fd42 Tweak comments in on_key in PaintApp 2023-04-26 17:23:45 -04:00
Isaiah Odhner
e3c985d0a5 Fix indent 2023-04-26 17:15:27 -04:00
Isaiah Odhner
0754db7218 Fix IndexError when pressing Ctrl+A followed by Delete in a textbox 2023-04-26 17:08:32 -04:00
Isaiah Odhner
c1375d81ed Make Select All select text within the textbox, if applicable 2023-04-26 17:04:24 -04:00
Isaiah Odhner
088b7e9b2d Clamp text selection endpoint while dragging
This fixes weird or non-traditional behavior where dragging further away
from the textbox when the mouse is outside the textbox would continue to
offset the cursor index. It wasn't totally unreasonable, but the
traditional behavior is to clamp it, and it makes it easier to select
whole lines.
2023-04-26 17:00:54 -04:00
Isaiah Odhner
c46586cc51 Show text selection within Textbox, and update it with Shift+arrows 2023-04-26 16:47:55 -04:00
Isaiah Odhner
93eac0fc0e Actually, replace NUL only when selected 2023-04-26 15:48:21 -04:00
Isaiah Odhner
22cba20c35 Replace NUL in loop instead of in the string literal 2023-04-26 15:47:03 -04:00
Isaiah Odhner
da3136a2d2 Fix code page 437 string
It had an extra "▀", and skipped the null at the start (which I'm
replacing with a space so it doesn't mess up the screen when inserting.)
2023-04-26 15:36:16 -04:00
Isaiah Odhner
1f171259bb Fix shifted/cutoff selection when melding with negative coordinates
Code intended to prevent errors was also creating an offset between
the source and target regions. The source region needs to be adjusted
to match the clipped target region.
2023-04-26 13:49:33 -04:00
Isaiah Odhner
0c52788843 Fix some type checker errors 2023-04-26 13:35:52 -04:00
Isaiah Odhner
3f3375c1fd Paste to top left of viewport (when scrolled right/down) 2023-04-26 13:13:42 -04:00
Isaiah Odhner
5bd6684ba7 Clean up commented out clipboard code 2023-04-26 13:03:53 -04:00
Isaiah Odhner
5fe0178d36 Note new dependencies in installation instructions 2023-04-26 12:52:27 -04:00
Isaiah Odhner
f114723be4 Make pasting undoable 2023-04-26 12:47:08 -04:00
Isaiah Odhner
55c280cdfb Don't use pyperclip.is_available() 2023-04-26 12:38:14 -04:00
Isaiah Odhner
8c936552b7 Don't delete selection if copy fails during cut 2023-04-26 12:32:12 -04:00
Isaiah Odhner
0c3cc45ddd Start implementing copy/paste with pyperclip 2023-04-26 12:28:42 -04:00
Isaiah Odhner
ed5e399a58 Don't delete the whole textbox when pressing Delete 2023-04-26 11:19:16 -04:00
Isaiah Odhner
fe8c05bdc0 Reorder expanding_directory_tree next to directory_tree_selected_path 2023-04-26 03:21:09 -04:00
Isaiah Odhner
c81d45756b Add docstrings to all PaintApp state, replacing comments 2023-04-26 03:19:23 -04:00
Isaiah Odhner
3849f57ed6 Add docstrings to all functions 2023-04-26 03:01:00 -04:00
Isaiah Odhner
a5518a5894 Remove redundant cancel_preview, handled by stop_action_in_progress 2023-04-26 02:38:27 -04:00
Isaiah Odhner
6d6ef25da4 Cancel active tool by pressing both mouse buttons 2023-04-26 01:30:36 -04:00
Isaiah Odhner
bf8c7fa1a6 Comment/typecheck new CharInput render_line code 2023-04-26 01:24:37 -04:00
Isaiah Odhner
818cf55c5e I drew some galaxies
just messin' around
2023-04-26 01:14:38 -04:00
Isaiah Odhner
63c9a3ea11 Cancel active tool with Escape 2023-04-26 00:38:50 -04:00
Isaiah Odhner
c6967c69f5 Show selected foreground color in the CharInput 2023-04-26 00:06:57 -04:00
Isaiah Odhner
d043d444e9 Hide selection border while dragging 2023-04-25 19:22:57 -04:00
Isaiah Odhner
15ffabbaac Use repr instead of str when formatting exceptions
This is a little better, but not great.
2023-04-25 19:03:50 -04:00
Isaiah Odhner
1ab1dfb037 Fix extraneous white cell at top left when loading ANSI files 2023-04-25 18:43:28 -04:00
Isaiah Odhner
ba7f8e6a0a Don't invert the inner textbox border, that's too visually confusing 2023-04-25 18:31:50 -04:00
Isaiah Odhner
5ba8cbdbb8 Fix assertion error when using Select or Text before any other tool
AssertionError: selection_drag_offset should only be set if there's a selection
2023-04-25 18:26:15 -04:00
Isaiah Odhner
aae99c3247 Add parenthesis in complex canvas rendering conditional 2023-04-25 18:19:54 -04:00
Isaiah Odhner
0e25b99d2b Update known issue with newly-known knowledge about the issue
There are known knowns, and unknown knowns, and also known unknowns,
and unknown unknowns, but this is a now-no-longer-known-unknown-now-known-known, y'know? (I don't not not not not not not know.)
2023-04-25 18:08:34 -04:00
Isaiah Odhner
66f4b77ff3 Further clarify comment about selection cutout vs melding regions 2023-04-25 17:36:52 -04:00
Isaiah Odhner
5141044ef0 Clarify/expound comment about selection cutout vs melding regions 2023-04-25 17:07:50 -04:00
Isaiah Odhner
91ce544569 Move selection box with arrow keys
Note: This doesn't cut out the selection if you haven't dragged it yet,
with the mouse. It should probably be equivalent to mouse dragging, but
this current behavior could be useful too.
2023-04-25 16:53:47 -04:00
Isaiah Odhner
155f73b319 Update Known Issues 2023-04-25 16:36:52 -04:00