While this doesn't handle releases with multiple identical modifiers
pressed, the release can't work reliable anyway, since one modifier
could be pressed before focusing the window, thus tracking modifiers
based on the keysym values won't work as it was suggested by kitty
author.
Links: https://github.com/kovidgoyal/kitty/issues/6913
The regression was added due to `y` coordinate in OpenGL differs to
`y` inside the damage rectangles.
Fixes: 40160c5d (Damage only terminal inside `alacritty_terminal`)
When the key doesn't have textual representation we shouldn't emit
the text for them, since they are processed via bindings.
Also, fix the logic to handle named keys with disambiguate without
special modes/modifiers.
Fixes#7423.
We should ensure that the `Shift` is actually pressed when trying to
prefer regular bindings instead of the ones if we had Shift applied.
Fixes: 500b696ca8 (Prefer exact matches for bindings in mouse mode)
Fixes#7415.
The protocol enables robust key reporting for the applications, so
they could bind more keys and the user won't have collisions with
the normal control keys.
Links: https://sw.kovidgoyal.net/kitty/keyboard-protocolFixes#6378.
When setting cursor area, the popup will be placed either above or
below not obscuring the supplied region, however we were still
offsetting line with `+1` putting the cursor at the bottom of the line,
and given that area is from the top-left corner, the wrong area
was marked for not being obscured.
It was also discovered that some compositors, like GNOME, position
IME in the bottom right corner of the supplied region, which is wrong,
but it renders IME popup not very useful, since it's far away from
the place it should be, thus try to not obscure just a few characters
near the cursor.
Given that X11 doesn't support area setting, it uses the old logic
with offsetting.
Co-developed-by: lilydjwg <lilydjwg@gmail.com>
Signed-off-by: lilydjwg <lilydjwg@gmail.com>
Font size could change without changing the cell dimensions, like
becoming slightly higher/wider.
Fixes: 40160c5d (Damage only terminal inside `alacritty_terminal`)
The alacritty documentation is fully present inside the man pages, the
repo provides nothing extra other than a way to report issues, which
lives in its own section anyway.
Part of the man pages were using _value_, other part were using just
value, thus make everything as _value_.
Also properly dot terminate and add spacing through out the man pages.
Having a separate branch for each release makes it harder to maintain
without an actual benefit, since every release from the major version
is linear, so creating branches doesn't make any sense.
They also collapse with the tag names leading to ambiguous refs.
The damage tracking was including selection and vi_cursor which were
rendering viewport related, however all the damage tracking inside
the `alacritty_terminal` was _terminal viewport_ related, meaning that
it should be affected by `display_offset`.
Refactor the damage tracking so `alacritty_terminal` is only tracking
actual terminal updates and properly applying display offset to them,
while `alacritty` pulls this damage into its own UI damage state.
Fixes#7111.