kitty/kitty_tests
Francis Lavoie 86c5e13816
Wayland: do not ignore the scroll wheel after reversing direction
A high resolution wheel delivers one physical detent as several VALUE120
events, so pending_scroll_pixels accumulates fractions of a line and carries
the remainder to the next event. Detents do not reliably total 120 units, so
that carry is load bearing: it is what lets an undersized detent still scroll
a line.

It breaks down when the scroll direction changes, because the residual then
has the wrong sign and the first detent of the new direction is spent
cancelling it rather than scrolling. Measured on a Logitech MX Master 3 under
GNOME/Wayland, against a terminal program that had requested mouse events,
47% of detents that reversed direction scrolled nothing, against 2% of
detents continuing in the same direction.

Discard the residual when the direction changes, and leave the carry alone
otherwise, so scrolling in a single direction is unaffected.

The accumulator state also moves from Screen to OSWindow, since scroll events
are delivered to an OS Window rather than to a particular terminal window.
2026-08-02 15:47:31 -04:00
..
__init__.py Add support for DECSTR soft screen reset escape code 2026-07-15 09:28:51 +05:30
atexit.py Add integration test for go atexit implementation 2025-09-30 12:37:25 +05:30
CascadiaCode-Regular.otf
check_build.py Enable ASAN for macOS CI builds in ci.py 2026-06-24 10:01:29 +05:30
child.py Function to get memory used by processes rooted at pid 2026-07-29 13:25:51 +05:30
clipboard.py
ComfyCode-Regular.ttf Add shaping tests for ligature cases and bundle Comfy Code 2026-04-25 19:43:17 +08:00
command_palette.py Add alias and combine support to the command palette 2026-04-06 09:45:39 -07:00
completion.py remove leftover debug prints 2025-07-20 21:45:36 +05:30
crypto.py
datatypes.py Change set_uint_at_address to use METH_FASTCALL, skip ctypes test on intel macs 2026-06-25 10:49:19 +00:00
dnd.py fix drop_update_mimes: use exact MIME matching and correct sentinel value 2026-05-17 16:45:07 +00:00
dnd_kitten.py Add data URI support to dnd kitten parse_uri_list 2026-05-18 07:54:57 +00:00
file_transmission.py
FiraCode-Medium.otf
fonts.py fonts: make the color emoji regression test environment-independent 2026-06-14 21:00:12 +05:30
glfw.py
gr.py Make shebangs consistent 2023-11-11 08:32:05 +05:30
GraphemeBreakTest.json Add support for Unicode 17 2025-10-18 09:59:53 +05:30
graphics.py Fix erroneous scroll when using X/Y offsets in images 2026-07-12 18:22:40 -04:00
iosevka-regular.ttf
keys.py Preserve copy_or_noop passthrough 2026-05-20 11:15:49 +05:00
layout.py Add tests for splits layout serialization 2026-06-10 07:41:02 +05:30
LiberationMono-Regular.ttf
main.py Migrate type checker to ty 2026-07-04 09:18:00 +05:30
mouse.py Wayland: do not ignore the scroll wheel after reversing direction 2026-08-02 15:47:31 -04:00
multicell.py Fix crash in overlay line drawing on uninitialized linebuf view 2026-04-18 13:10:07 +08:00
notifications.py
open_actions.py
options.py tabbar: address vertical alignment feedback 2026-04-25 15:21:50 -04:00
panels.py ... 2025-05-03 10:47:03 +05:30
parser.py terminal: add visibility reports 2026-07-28 14:25:12 -05:00
screen.py terminal: add visibility reports 2026-07-28 14:25:12 -05:00
search_query_parser.py Replace isort with ruff 2023-01-09 16:47:42 +05:30
shell_integration.py Make detection of command line flags that prevent sudo from overriding TERMINFO more robust 2026-05-05 09:38:07 +05:30
shm.py Go SHM API to read simple data with size from SHM name 2023-02-26 08:01:02 +05:30
ssh.py ... 2026-07-04 09:23:16 +05:30
tab_bar.py Improve fade style for vertical tab bar 2026-08-02 21:54:56 +05:30
tui.py Make shebangs consistent 2023-11-11 08:32:05 +05:30
twemoji_smiley-cff2_colr_1.otf
utmp.py