fix chinese input method backspacing issue
macOS: Set pre-edit text for IME
macOS: implement glfwPlatformUpdateIMEState
set firstRectForCharacterRange correctly
macOS: update IME position on each input
macOS: use float instead of int for updateIMEState
minor fix
macOS: ignore marked text on deadkey
fixes german keyboard input
macOS: convert markedRect to screen coord
This allows it to be used with the make app kitty bundle as well.
This makes it robust against launching in environments where
python3 is not on PATH. See #1280
On Linux, just call the tick callback on every loop tick. This is much
simpler, and should fix the issue with screen updates sometimes getting
stuck waiting for an X11 event.
Note that this was what used to happen (global state being checked on
every loop tick) before the refactoring to use a GLFW event loop,
therefore there should be no performance regressions, though we
of course end up checking global state on every group of events on
Linux, instead of only when something of interest happens. I suspect, to
achieve the latter is going to require implementing a mutex/lock in the
main loop to avoid races, which doesn't seem worth it.
When setting tab_bar_switch_to_previous_when_closing_current_tab kitty
will now switch to the left tab instead of the previously active one
when the currently active tab is closed. This makes the closing of tabs
a bit more predictable.
Note that we are not touching the handling of the active_tab_history at
all. I was considering it, but we want to keep track of it in any case
to keep the 'switch to previous tab' shortcut working.
It is useless to focus a window on mouse button release. This behaviour
makes this scenario possible:
1. Have at least two visible windows in the current tab.
2. Select text in a window with the left mouse button, dragging, and
release the mouse button within the other window.
The focus is changed to the other window. I believe this is unexpected.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
This patch reverts part of cb095be0cc to
allow again to double-click and then drag to select multiple words.
With this patch, the primary selection is still not updated until you
release the mouse's left button, but the selection does not "block" on
the first word while trying to double-click and drag.
I believe this behaviour has come to be expected by users, since GNOME
Terminal, Terminator, xterm, rxvt, major browsers, LibreOffice, and many
more significant applications have it.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
Now uses glyph groups to detect a possible ligature and turn off
ligatures only in that group. Requires a re-render of parts of the line,
but I dont see a good way to avoid that.