Commit Graph

871 Commits

Author SHA1 Message Date
Kartik K. Agaram 778bc78416 make online help fit within a drawing 2022-06-04 21:58:06 -07:00
Kartik K. Agaram 7d1671051f yet another key conflict 2022-06-04 21:48:35 -07:00
Kartik K. Agaram 4c5ac9ae5e regression: couldn't do many drawing operations because line.y was reset 2022-06-04 20:52:36 -07:00
Kartik K. Agaram db8b5b5062 switch circles to 'o' to avoid conflicting with copy 2022-06-04 20:35:31 -07:00
Kartik K. Agaram bfaa3fd95b bugfix in help 2022-06-04 20:25:48 -07:00
Kartik K. Agaram 9ee5d1c913 try to maintain a reasonable line width 2022-06-04 20:10:56 -07:00
Kartik K. Agaram 557b91a5de . 2022-06-04 19:38:20 -07:00
Kartik K. Agaram fa267e25e6 experiment: slightly adaptive scrolling
When long wrapping lines go past the current page, I find myself
scrolling before I get to the bottom. So let's scroll less, usually from
the start of the bottom-most line, even if it wraps multiple screen
lines.

The challenge with this is to ensure that a long line that fills the
whole page by itself doesn't get you stuck. I take some care to make
sure <pagedown> always makes forward progress.
2022-06-04 14:55:52 -07:00
Kartik K. Agaram 1326914d7b select text with shift + mouseclick
It's still a bit simple-minded. Most software will keep the first bound
fixed and move the second. Lines currently has the bounds in a queue of
sorts. But I have a test to indicate the behavior that is definitely
desired. We'll see if we need it to get more complex.
2022-06-04 14:54:40 -07:00
Kartik K. Agaram 98f50f0b40 make cursor more obvious
Let's see if this is good enough. I can also bump up to 4px radius if I
need to.
2022-06-04 11:46:43 -07:00
Kartik K. Agaram a4cec2f58a one more known issue 2022-06-03 14:42:08 -07:00
Kartik K. Agaram e2696fcc72 more precise search highlighting 2022-06-03 14:37:32 -07:00
Kartik K. Agaram 1bdb931575 extract a function 2022-06-03 14:30:51 -07:00
Kartik K. Agaram 0d52962b3e extract a couple of files 2022-06-03 14:17:41 -07:00
Kartik K. Agaram 06e6ecdf8f bugfix: restore state after C-f (find) 2022-06-03 13:59:40 -07:00
Kartik K. Agaram ac83252684 taking stock
couple of more temporary bugs:
  find sometimes draws highlighted text in wrong place
  esc after C-f sometimes ends up with cursor before screen top

But the known issues are harder.
2022-06-03 13:32:42 -07:00
Kartik K. Agaram b69801bdf1 highlight selection while dragging
Mouse stuff is pretty strenuous. For the first time I have to be careful
not to recompute too often. And I ran into a race condition for the
first time where resetting line.y within App.draw meant mouse clicks
were extremely unlikely to see line.y set.
2022-06-03 13:22:03 -07:00
Kartik K. Agaram 73cc12047e select text using mouse drag
Doesn't yet highlight while dragging.
2022-06-03 08:11:18 -07:00
Kartik K. Agaram 9efeae1f82 rename 2022-06-03 08:01:21 -07:00
Kartik K. Agaram 91d79eba33 local var 2022-06-03 08:00:31 -07:00
Kartik K. Agaram 7301f3964c up arrow to search previous 2022-06-03 07:48:41 -07:00
Kartik K. Agaram 03499f7449 switch freehand hotkey to eliminate conflict with search
I'm now following Inkscape, and the mnemonic is 'pencil'.
2022-06-02 23:55:17 -07:00
Kartik K. Agaram 8047ab9b89 switch copy/paste to ctrl- hotkeys 2022-06-02 23:52:26 -07:00
Kartik K. Agaram dcdcd07902 switch undo/redo to ctrl- hotkeys 2022-06-02 23:48:35 -07:00
Kartik K. Agaram 1fc4214029 default font size and line-height 2022-06-02 23:44:34 -07:00
Kartik K. Agaram 0b63721bb0 extract a new variable 2022-06-02 23:40:20 -07:00
Kartik K. Agaram 9bbfc2be13 crisp font rendering 2022-06-02 23:36:07 -07:00
Kartik K. Agaram b94b007db5 find text 2022-06-02 22:53:34 -07:00
Kartik K. Agaram 63f59e7c2c scroll if necessary on paste 2022-06-02 19:28:38 -07:00
Kartik K. Agaram 15c54f4383 rename 2022-06-02 19:25:33 -07:00
Kartik K. Agaram 9121a263a6 . 2022-06-02 19:08:06 -07:00
Kartik K. Agaram 51f4f13ecc test harness now supports copy/paste 2022-06-02 18:52:49 -07:00
Kartik K. Agaram 283c4e5804 bugfix: pasting newlines 2022-06-02 18:35:18 -07:00
Kartik K. Agaram 4f76ea37d7 more efficient undo/redo
Now the bottleneck shifts to applying undo/redo in large files. But
things should be snappy if you don't use the sluggish feature.
2022-06-02 17:46:30 -07:00
Kartik K. Agaram 22817492a3 rename 2022-06-02 16:44:18 -07:00
Kartik K. Agaram 477216a051 this implementation undo load-tests quite poorly
Even a 10KB file gets sluggish within the first 1k characters inserted.

We're not running out of memory, we're just overloading Lua's GC.
2022-06-02 16:29:18 -07:00
Kartik K. Agaram b4e76eac4e bugfix: undo drawing creation
Also clean up drawing state to make sure we don't get into hard-to-debug
situations.
2022-06-02 15:51:44 -07:00
Kartik K. Agaram 670886240f after much struggle, a brute-force undo
Incredibly inefficient, but I don't yet know how to efficiently encode
undo mutations that can span multiple lines.

There seems to be one bug related to creating new drawings; they're not
spawning events and undoing past drawing creation has some weird
artifacts. Redo seems to consistently work, though.
2022-06-02 15:45:25 -07:00
Kartik K. Agaram a9a133e6fb update some App framework docs 2022-05-31 17:29:58 -07:00
Kartik K. Agaram 819cb4b1cc avoid scrolling down if possible 2022-05-30 17:24:23 -07:00
Kartik K. Agaram d0d22fffbc missing temporary modes in a couple more places 2022-05-30 16:23:08 -07:00
Kartik K. Agaram 69eeefe197 missing shape modes in a couple more places 2022-05-30 16:23:01 -07:00
Kartik K. Agaram b22bfe82db support non-text lines in Text.to2
Originally I was only using it on cursor line, but there's no reason
that has to be true in general.
2022-05-30 15:40:36 -07:00
Kartik K. Agaram 3b4dacaee8 regression: typing uppercase letters in text 2022-05-30 15:36:53 -07:00
Kartik K. Agaram fd5a47f8bf more robust transitions to temporary modes
I seem to often accidentally press C-n twice to go into name mode. Now
doing so overrides the previous temporary mode (name/move/delete point)
without clobbering the real shape-drawing mode.
2022-05-30 15:34:53 -07:00
Kartik K. Agaram 714f7d11cd experiment: give up on changing shape mode
I often find myself accidentally hovering over some shape or other when
switching modes.

One additional reason to do this: I never included it in the help. So it
hasn't been very high-priority.
2022-05-30 15:34:01 -07:00
Kartik K. Agaram 3414f0a11d bugfix: function names 2022-05-30 15:29:57 -07:00
Kartik K. Agaram 096f6255b2 ignore 'name' mode in a few places 2022-05-30 15:28:50 -07:00
Kartik K. Agaram 1552efd76d bugfix: checking if a point is on a manhattan line 2022-05-30 15:27:03 -07:00
Kartik K. Agaram 26033f40f1 ignore 'deleted' shapes when saving to disk 2022-05-30 15:26:31 -07:00