Commit Graph

1162 Commits

Author SHA1 Message Date
Kovid Goyal
65f06e8fdb Wayland: Fix crash on compositors that dont support the window activation protocol 2024-05-06 08:52:01 +05:30
Kovid Goyal
ce4237c45d DRYer 2024-05-05 14:09:18 +05:30
Kovid Goyal
849dcd424d Wayland: save energy by not rendering "suspended" windows on compositors that support that
Note that this breaks kitty on GNOME 45 which has a bug, but it fine on
GNOME 46.
2024-05-05 13:42:51 +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
aecf07bcba Wayland: Fix infinite loop causing bad performance when using IME via fcitx5 due to a change in fcitx5
Fix #7396
2024-04-28 11:30:48 +05:30
Kovid Goyal
8c7994c0ac Dont call wl_egl_window_resize on every swap 2024-04-24 10:04:06 +05:30
Kovid Goyal
8e59b598e0 Improve logging slightly 2024-04-24 09:38:59 +05:30
Kovid Goyal
72272ab4fe Remove need for context switching
Call wl_egl_window_resize just buffer swapping buffers at which point
the context is already correct.

Also might workaround bugs in the NVIDIA driver: https://github.com/NVIDIA/egl-wayland/issues/52
2024-04-24 09:27:02 +05:30
Kovid Goyal
b7e22a357f ... 2024-04-24 08:57:49 +05:30
Kovid Goyal
0f00b0cfb6 Use RAII for context management 2024-04-24 08:21:27 +05:30
Kovid Goyal
9755d0d879 Wayland: Ensure context is correct when calling wl_egl_window_resize
Fixes #7373 (I hope)
2024-04-22 18:07:34 +05:30
Kovid Goyal
fbefd8600f output window id is debug logs useful for debugging issues with multiple os windows 2024-04-22 14:04:26 +05:30
Kovid Goyal
8d1b0e54af Use double for wayland float calculation 2024-04-19 22:23:01 +05:30
Kovid Goyal
63ffa2606c Give the close X a distressed look 2024-04-17 11:05:05 +05:30
Kovid Goyal
f66ee68834 Wayland GNOME: Draw the titlebar buttons without using a font
Fixes #7349
2024-04-17 10:39:30 +05:30
Kovid Goyal
494892c7e4 Dont create the region unless actually needed 2024-04-16 18:16:28 +05:30
Kovid Goyal
6c1a83ffd7 Wayland KDE: Fix window background blur not adapting when window is grown. Also fix turning it on and off not working.
Fixes #7351
2024-04-16 18:11:26 +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
e57692e4f5 Possibly fix #7327 2024-04-09 21:19:25 +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
208490f4e1 ... 2024-04-08 11:18:32 +05:30
Kovid Goyal
d392aba64d Wayland CSD: Dont render window shadows for docked windows 2024-04-08 10:59:03 +05:30
Kovid Goyal
d630b3d8a7 Change the maximize icon to restore when window is maximized 2024-04-08 09:36:38 +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
eb96830aa0 Make CSD API functions naming consistent 2024-04-07 10:18:13 +05:30
Kovid Goyal
334bb36745 Dont enable CSD for non XDG top-level windows such as layer shell surfaces 2024-04-07 10:08:02 +05:30
Kovid Goyal
283eba9667 Wayland: Respect top level bounds sent by compositor 2024-04-06 17:29:17 +05:30
Kovid Goyal
c651312a88 Adjust button colors 2024-04-06 17:24:55 +05:30
Kovid Goyal
5b1fdc34eb Wire up the buttons 2024-04-06 14:58:31 +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
416d52bdac ... 2024-04-05 21:33:41 +05:30
Kovid Goyal
9225bd772d Reduce CSD API surface 2024-04-05 19:57:43 +05:30
Kovid Goyal
9e55951d5a ... 2024-04-05 19:37:41 +05:30
Kovid Goyal
d9663aa135 Make code a little clearer 2024-04-05 19:29:51 +05:30
Kovid Goyal
9d86448585 Wayland: Allow hiding window decorations on compositors with SSD as well 2024-04-05 19:23:42 +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
bdfa57039c Get rid of frame dependent size storage in kitty layer
This unifies behaviour with CSD and SSD. Now, in both cases the
remembered size is the size of the content area.
2024-04-04 19:39:02 +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
76999d1a67 Fix creation of single pixel buffer to use 32 bits per color channel 2024-04-04 16:13:28 +05:30