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.
This should make tracking down the root cause of the
event loop pauses on X11 easier. And the infrastructure
should come in handy in the future as well.
In 934336e64278dae88ab87aa75c9bf553a5931fa6, the config option
`disable_ligatures_under_cursor` was renamed to `disable_ligatures` and the
behaviour of that option was altered so that it is now possible to
disable ligatures completely. This commit reflects that change in changelog.rst
Currently does nothing, but could potentially be used to fix:
https://github.com/kovidgoyal/kitty/issues/794
Will need someone with the hardware though to test
exactly what needs to be done to restore the custom cursor image.
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.
In the "Mouse features" section:
* Make it clear that you can double-click or triple-click and then drag
to extend the initial selection.
* Add the fact that selecting copies the selected text to the primary
clipboard on platforms supporting this.
Signed-off-by: Philippe Proulx <eeppeliteloop@gmail.com>
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 cb095be0cc5f3a2ca560dd1474a62bc7aa2a5a46 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>