Commit Graph

1389 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
6436cda482 Add is_finger_based field to XIScrollDevice with detection logic
Fixes #9385
2026-01-15 19:18:27 +05:30
Kovid Goyal
9ef934cf54 Wayland: Remove usage of the Wayland color management protocol to inform compositors of the color space used by kitty
As is typical with Wayland, the protocol is poorly designed and
implemented even worse. Hyprland 0.53 has completely broken color
management.
https://github.com/hyprwm/Hyprland/discussions/12788
In addition it and mangowc crash when using color management with nouveau drivers.
https://github.com/kovidgoyal/kitty/issues/9030

KDE kwin does not support the sRGB transfer function. And the geniuses
at Wayland are any way planning to deprecate sRGB as a transfer function.

Only GNOME mutter seems to get it right.

Then there are people that are likely going to shoehorn this into EGL
instead of leaving it under application control via the protocol anyway.
https://github.com/KhronosGroup/EGL-Registry/issues/197

Sigh. Wayland.
2026-01-15 09:53:09 +05:30
Kovid Goyal
c389f4d5b8 Wayland: Fix doubled key repeat events when compositor sends repeat events
Fixes #9374
2026-01-15 08:13:37 +05:30
Kovid Goyal
da170555fa Ignore master pointer device events since we use the slave devices 2026-01-11 12:57:56 +05:30
Kovid Goyal
1efded85bc Support for old compilers 2026-01-11 11:02:14 +05:30
Kovid Goyal
69a25691c5 X11: Fix mouse motion events not being handled
The code to use XI_Motion for scroll events needed to handle motion
events too
2026-01-11 10:44:47 +05:30
copilot-swe-agent[bot]
bfc21fc7a4 X11: handle XI device hotplugging
Fixes #9370
2026-01-10 09:00:37 +05:30
Kovid Goyal
813c560e29 Implement proper scroll event type detection in X11
Uses libinput scroll mode property to detect high res devices.
2026-01-10 08:38:45 +05:30
Kovid Goyal
15206eda0b Add XIGetQuery 2026-01-10 06:17:53 +05:30
Kovid Goyal
f8426d529c ... 2026-01-10 05:51:59 +05:30
Kovid Goyal
21da5350d3 Update changelog 2026-01-09 17:22:26 +05:30
copilot-swe-agent[bot]
c1a54a0cc0 Add XI2 smooth scrolling support for X11 backend
Fixes #9369
2026-01-09 17:13:24 +05:30
Kovid Goyal
dd9c61e5f6 ... 2026-01-09 14:44:40 +05:30
Kovid Goyal
2ab0fcb373 Make Wayland momentum scrolling configurable 2026-01-09 13:46:49 +05:30
Kovid Goyal
1f43a75a07 DRYer 2026-01-09 13:26:44 +05:30
Kovid Goyal
c0add3198b Use logical pixels for momentum velocity settings 2026-01-09 13:21:04 +05:30
Kovid Goyal
779fb0d5c5 Cancel momentum scroll on button and key events 2026-01-09 13:15:37 +05:30
Kovid Goyal
3232551c39 Revert to using a fixed timer interval
Sadly, we cant rely on the Wayland compositor to send us reliably timed
scroll events.
2026-01-09 13:10:16 +05:30
Kovid Goyal
858240e324 Momentum scroller: discard unsuitable physical events 2026-01-09 12:56:05 +05:30
Kovid Goyal
3c250a741d Wayland: Fix line and v120 scroll event types being multiplied by screen scale
This does not match X11/macOS behavior. And I see no logical reason why
it should be so. The wheel_scroll_multiplier should be used to adjust
this by end users.
2026-01-09 12:50:07 +05:30
Kovid Goyal
48de08ded1 Derive timer interval in the momentum scroller from previous scroll events 2026-01-09 10:40:24 +05:30
Kovid Goyal
32f7f8d321 Remove unneeded axis event timestamp 2026-01-05 20:13:33 +05:30
Kovid Goyal
e825005861 Remove unused field 2026-01-05 20:08:09 +05:30
Kovid Goyal
e1199bcee2 Initial implementation of momentum for finger based scrolling on Wayland
Needs configuration and possibly the parameter adjustment once pixel
scrolling is merged.
2026-01-05 19:52:44 +05:30
Kovid Goyal
ba389d68b9 macOS: Fix changes to macos_titlebar_color while in full screen not being applied after exiting fullscreen
Fixes #9350
2026-01-03 00:19:03 +05:30
Kovid Goyal
0f1362524b Store more information about axis events from Wayland 2026-01-01 13:25:30 +05:30
Kovid Goyal
ba3af8f2c3 Refactor GLFW scroll event callback to use a proper event struct 2025-12-31 23:40:34 +05:30
Kovid Goyal
06e7f5ec37 Fix #9306 2025-12-20 08:54:22 +05:30
Kovid Goyal
4f73374a12 YATB: Yet Another Tahoe Bug from the company that should stick to selling fruit
Fixes #9299
2025-12-18 11:13:38 +05:30
Kovid Goyal
99b1eca3c8 Disable NSAutoFillHeuristicController on spec 2025-12-18 10:16:59 +05:30
Kovid Goyal
71a7dda522 ... 2025-12-05 07:51:04 +05:30
Kovid Goyal
3b78fd646e ... 2025-12-03 22:57:14 +05:30
Kovid Goyal
16008b950a Wayland: Fix spurious key repeat events when some user defined callback takes a long time to execute
On compositors that support compositor key repeat events, use those, for
complete robustness. Sadly no actual compositor implements these yet.

Otherwise use a timer fd/pipe to queue the repeat events and only
dispatch them after events from the compositor are handled. This means
release events from the compositor will prevent spurious repeat events.
One can, in the worst case lose some repeat events if there is a very
large interval between the start of the timer and the next poll, but
that is unavoidable and is why repeat events should come from the compositor
in the first place.

Fixes #9224
2025-12-03 22:26:09 +05:30
Kovid Goyal
ca945563bb Wayland: add support for compositor provided key repeat events
Far more robust. Sadly no actual compositors yet support this. Fifteen
years it takes Wayland developers to correct their most basic mistakes.

See #9224
2025-12-03 20:02:46 +05:30
Kovid Goyal
76f9cdc426 ... 2025-11-22 20:03:01 +05:30
Kovid Goyal
35d95d7a43 Also remove shadow from zero sized window
Hopefully that means no clickable region at all?
2025-11-12 14:01:37 +05:30
Kovid Goyal
98e13787a9 ... 2025-11-12 12:23:24 +05:30
Kovid Goyal
81f429d52b Move the code to cycle through OS Windows into glfw 2025-11-12 12:02:38 +05:30
Kovid Goyal
a4a7f77ef1 Use __block rather than __weak since we are in manual ref counting regime 2025-11-12 09:31:31 +05:30
Kovid Goyal
33b9d858ad Nano-optimisation: Avoid using a block with GCD 2025-10-22 13:40:42 +05:30
Kovid Goyal
6a6b0b47a3 Micro-optimize display link callback
Use a GCD block rather than a runtime selector with a boxed number
2025-10-22 13:35:02 +05:30
Kovid Goyal
878b502fc1 Cleanup previous PR
The locks were not being initialized, and since I was there did some
general cleanup as well, moved the locks array into displayLinks rather
than having another global namespaced variable.
2025-10-22 09:54:21 +05:30
Scott Lee
fc8f3ca6e2 Improve macOS idle wakeups handling 2025-10-22 07:38:10 +09:00
Kovid Goyal
94f3da53aa Cleanup previous PR 2025-10-21 09:44:41 +05:30
Evan Goode
80a9bdb999 Smoothly handle VALUE120 scroll events 2025-10-20 09:32:59 -04:00
alex-huff
10e0d11093 panel: use an anchor of 0 for --edge=center-sized
Fixes #9116
2025-10-16 10:04:55 -05:00
Kovid Goyal
3ba6c3f4b9 macOS: Handle dropping of file promises into kitty in addition to file paths
Fixes #9084
2025-10-11 11:02:51 +05:30
alex-huff
1967fd9dd5 panel: implemented --edge=none on X11 2025-10-09 17:18:40 -05:00
Kovid Goyal
2babfa7ebf macOS: Further restrict the live resize callback to only be used when live resize is actually in progress 2025-10-07 18:23:08 +05:30
Kovid Goyal
d3c5cb12c4 macOS: Dont do live resizing when window is fullscreen
The live resize causes crashes on some Tahoe machines due to macOS bugs.
It is not needed anyway when the window is fullscreen, so ignore it.
2025-10-07 08:57:57 +05:30