Every key copied the whole Im and Search rune by rune, compared them after the transition, and combined the answer with 'eaten', a commit count that is always zero, and a force flag for caret and owner changes, while redraw() kept a separate 'visible' bit to know when to send an empty popup. redraw() now compares the snapshot with the last one sent and treats two empty popups as equal, so imhandlekey just ends in redraw(). keystroke() was only a test entry point and moves there.
47 KiB
47 KiB