Commit graph

160 commits

Author SHA1 Message Date
Kovid Goyal
5d2e258c35
Wayland: When the compositor supports the xdg-system-bell protocol use it to play the default bell sound 2025-04-16 15:48:51 +05:30
Kovid Goyal
3b8e0e209b
Wayland: Allow overriding the kitty OS Window icon on compositors that implement the xdg-toplevel-icon protocol 2025-03-10 12:32:03 +05:30
Kovid Goyal
27df509206
Nicer fix for enter event mouse tracking
Send an explicit mouse event to child when pointer enters window instead
of relying on GLFW to send a cursor position update event.
2025-03-04 11:29:29 +05:30
Kovid Goyal
0339d59851
Wayland: Fix mouse pointer position update not being sent when focus regained
GLFW Wayland backend was not sending a cursor position input event on
mouse entering the window surface.

Fixes #8397
2025-03-04 06:03:42 +05:30
Kovid Goyal
50f64d5981
Only use window occlusion on platforms where it is supported 2025-02-12 12:02:46 +05:30
Kovid Goyal
2cf83070a0
Report ancient xdg-shell versions 2025-02-12 11:31:28 +05:30
Kovid Goyal
b256f56afb
... 2025-01-21 15:13:54 +05:30
Kovid Goyal
7346aca56d
Function to probe for Wayland compositor name
Maybe needed to workaround #8236
2025-01-21 15:10:07 +05:30
Kovid Goyal
b0ebd340fe
Function to get the current system color theme 2024-11-07 12:47:06 +05:30
Kovid Goyal
627360e5ad
Bind the idle inhibit protocol even though it is currently unused 2024-08-27 11:32:06 +05:30
Kovid Goyal
a43188e778
Fix #7571 2024-06-24 18:21:28 +05:30
Kovid Goyal
48070ff38e
Fix #7481 2024-05-28 15:14:13 +05:30
Kovid Goyal
6e1df67e03
Use xdg-shell version 6
This gives us window "suspended" events. Theoretically these could be
used to implement glfwWindowIconified() and thereby not render suspended
OS windows. However let's wait a bit and see how this stabilizes. There
are all sorts of bugs around this currently, for example:

https://gitlab.gnome.org/GNOME/mutter/-/issues/3435
https://gitlab.gnome.org/GNOME/mutter/-/issues/3229
https://bugreports.qt.io/browse/QTBUG-124450
2024-05-05 13:24:45 +05:30
Kovid Goyal
8d1b0e54af
Use double for wayland float calculation 2024-04-19 22:23:01 +05:30
Kovid Goyal
e531791f79
Code to get peer pid on a few more platforms 2024-04-15 19:14:29 +05:30
Kovid Goyal
5b587060a4
Fix #7346 2024-04-15 16:07:38 +05:30
Kovid Goyal
ac4eef7eb3
Another try at pointer frame support on Wayland
This time I think I got the wheel handling correct. At least works with
my wheel mouse.
2024-04-08 19:07:52 +05:30
Kovid Goyal
48ed574b4f
... 2024-04-08 13:04:11 +05:30
Kovid Goyal
8fc96c5bd7
Make the debug logging functions consistent
They now all output the same format of:
[time since program start] msg
2024-04-08 12:53:55 +05:30
Kovid Goyal
bf60321466
Use individual surfaces for corner and bar shadows
Simplifies a bunch of code and also gives us the option at a later date
to turn off some shadows selectively when the window is in a tiled
state.
2024-04-07 22:28:41 +05:30
Kovid Goyal
a158fa108b
CSD pointer enter is the same as move 2024-04-06 12:51:09 +05:30
Kovid Goyal
60cb0fa650
Move CSD pointer handling code into CSD file 2024-04-06 12:49:07 +05:30
Kovid Goyal
d4cc5aa698
Report errors when attempts are made to perform actions the compositor doesnt support 2024-04-06 11:09:22 +05:30
Kovid Goyal
235b8dc2e4
Assume all capabilities on compositors that dont support reporting of capabilities 2024-04-06 10:59:28 +05:30
Kovid Goyal
4f6faddbab
Implement rendering of window control buttons in CSD
They still need to be wired up
2024-04-06 08:32:07 +05:30
Kovid Goyal
2c4ffba0f3
Wayland: A new option to turn off IME 2024-04-05 14:56:11 +05:30
Kovid Goyal
18b595a7e7
Map keymap fd using MAP_PRIVATE as required by the spec
Also report failures
2024-04-05 13:10:04 +05:30
Kovid Goyal
0198b7fa5a
... 2024-04-05 12:57:58 +05:30
Kovid Goyal
1bffe89b5d
Wayland GNOME: titlebar color now follows system theme
When GNOME system theme is default, the color matches the background
color. When it is dark it is dark.
2024-04-04 21:52:56 +05:30
Kovid Goyal
f51c2f08a5
DRYer 2024-04-04 19:11:21 +05:30
Kovid Goyal
ecee7086a8
Report compositor missing capabilities in debug output 2024-04-04 16:56:13 +05:30
Kovid Goyal
cd67184432
Output some info about compositor capabilities for --debug-rendering 2024-04-04 11:46:41 +05:30
Kovid Goyal
b4bba99678
Use single pixel buffer protocol for more efficient temp buffer creation 2024-04-04 09:00:33 +05:30
Kovid Goyal
5a62bbdd33
Revert "Wayland: Add support for pointer frame events. Code taken with thanks from SDL"
This reverts commit 506be129e1.
Seems to have broken wheel scrolling and I lake the time/interest to
debug why. Since this commit didnt actually solve any real issue revert
it for now. Revisit in the future when I have more bandwidth.

Fix #7287
2024-03-31 20:33:58 +05:30
Kovid Goyal
274a9d7759
Suppress an unused header warning 2024-03-30 11:41:23 +05:30
Kovid Goyal
506be129e1
Wayland: Add support for pointer frame events. Code taken with thanks from SDL 2024-03-28 15:32:59 +05:30
Kovid Goyal
83fcd472bb
Debug output: Show name and version of Wayland compositor 2024-03-26 09:54:38 +05:30
Kovid Goyal
fe5ccc144b
Finish glfw side support for layer shell 2024-03-24 20:48:20 +05:30
Kovid Goyal
707e69a794
Start work on wayland layer shell support 2024-03-24 20:48:20 +05:30
Kovid Goyal
1c9f9a74e8
Wayland KDE: Add support for background_blur under kwin using a kwin private Wayland protocol 2024-03-22 13:41:44 +05:30
Kovid Goyal
83468535dd
Implement support for preferred buffer scale 2024-03-21 20:53:36 +05:30
Kovid Goyal
55115058d2
Scale pointer axis events by effective scale 2024-03-21 20:53:36 +05:30
Kovid Goyal
5d0c25f5ea
Register the viewporter 2024-03-21 20:53:36 +05:30
Kovid Goyal
eb42ad3a2b
Rename scale to integer_scale
We will presumably have a fractional_scale soon
2024-03-21 20:53:36 +05:30
Kovid Goyal
2b6edbccbc
Start work on fractional scale support for Wayland
Register the interface on startup
2024-03-21 20:53:36 +05:30
Kovid Goyal
3c4db20d2d
DRYer 2024-03-21 11:27:41 +05:30
Jin Liu
e20eff277b Fix Wayland cursor-shape-v1 cursor not updating
According to https://wayland.app/protocols/cursor-shape-v1#wp_cursor_shape_device_v1:request:set_shape
> The serial parameter must match the latest wl_pointer.enter or
> zwp_tablet_tool_v2.proximity_in serial number sent to the client.

So we can't use wl.serial or wl.pointer_serial, because they are also updated in other places.
2024-01-04 19:54:03 +08:00
Kovid Goyal
4519b3abee
Enable cursor shape on Wayland
Cant replicate the hyprland crash, so am not going to bother about it.

Fixes #6914
2023-12-24 22:56:01 +05:30
Kovid Goyal
cff490f881
Wayland: Add support for the new cursor-shape protocol
It is currently disabled because no compositor seems to support it.
Hyprland reports it as available but using it causes Hyprland to crash.
Plasma 6 is supposed to have it but I am not installing a beta just for
this.

Typical Wayland.
2023-12-24 18:45:17 +05:30
Kovid Goyal
7d8c017215
DRYer 2023-12-24 15:03:56 +05:30