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
776bfa3d7e
Basic fractional scale protocol works
2024-03-21 20:53:36 +05:30
Kovid Goyal
6979f1c5eb
Add listener for fractional scale events
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
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
61429c73c7
Wayland: Fix primary selections not working with the river compositor
...
Fixes #6785
2023-11-03 19:57:54 +05:30
Kovid Goyal
f63bbfc88c
Wayland: Do not request idle inhibition for full screen windows
...
Fixes #6613
2023-09-12 16:43:46 +05:30
Kovid Goyal
95d15648fa
Fix not building with wayland-protocols 1.32
...
Fix #6422
2023-07-05 10:33:56 +05:30
Kovid Goyal
2435a8ccfd
Wayland GNOME: Fix incorrect window size when in some circumstances when switching between windows with window decorations disabled
...
Only call wl_surface_commit() after a resize when the correct size buffer is
attached to the surface. This is ensured by setting a flag on the window that prevents
all surface commits till it is cleared. The flag is cleared at next
eglSwapBuffers().
I dont actually understand if this guarantees that the
buffer size is always correct. For example, if the back buffer is
latched when wl_egl_resize_window() is called, the backbuffer will be
correct only after two swaps (I think). Or maybe the old back buffer is
discarded, I cant find any documentation about it.
All I can say is that doing it this way seems to fix the issue.
Thanks to @jadahl for his help with tracking down the root cause.
Fixes #4802
2022-10-31 21:59:01 +05:30
Kovid Goyal
6890e265b6
GNOME Wayland: Fix a memory leak in gnome-shell when using client side decorations
...
destroy CSD buffers that were never attached explicitly, as mutter does
not send release events for these even when the pool is destroyed.
2022-10-12 17:52:47 +05:30
Kovid Goyal
ba8d30896b
Try to use the activation protocol to focus windows
2022-09-11 10:39:28 +05:30
Kovid Goyal
4d30ae55f3
Wayland: Mark windows in which a bell as urgent on compositors that support the xdg-activation protocol
2022-09-11 09:33:41 +05:30
Kovid Goyal
91c00fb5ac
Implement the new clipboard API for Wayland
2022-09-08 17:29:18 +05:30
pagedown
06108d66b1
Replace tab with four spaces indent
2022-08-08 22:31:55 +05:30
Kovid Goyal
2f3dd72c84
Weston: Fix client side decorations flickering on slow computers during window resize
...
Fixes #5162
2022-06-03 11:00:56 +05:30
Kovid Goyal
91b9110dcc
Workaround for bug in mutter that caused first OS window to not have functional CSD when launched from activities
...
Fixes #4802
2022-03-17 17:35:56 +05:30
Alexander Orzechowski
39e75e39e8
wayland: Correctly handle xdg decoration configures
...
Much like toplevel configures, xdg decoration configures only take
effect once the xdg shell configure comes through. Also,
let's get rid of some double computations because we unified the code
paths.
2022-03-10 06:01:50 -05:00
Alexander Orzechowski
322a80e76e
wayland: track configures through a bit field
...
This will let us add more stuff later. Also, it's a better spot
to put the bit field outside of the {current, pending} struct as
the bit field doesn't make any sense if it's part of the `current`
values.
2022-03-10 05:56:56 -05:00
Alexander Orzechowski
d4b048735d
wayland: Fix CSD size calculations
...
This is a partial revert of e359094cff
window->wl.{width, height} and window->wl.current.{width, height}
represent different things. The former represents the actual size of the
egl surface viewport used for terminal rendering. The former represents
the size of the entire window including the CSD (client side decorations).
These numbers should be the same if CSD is disabled.
2022-03-10 05:56:56 -05:00
Kovid Goyal
af6baa33be
Ignore out of order surface configure events
2022-03-01 07:59:17 +05:30
Kovid Goyal
1096cbe236
Use an anonymous struct
2022-03-01 07:46:45 +05:30
Alexander Orzechowski
854cb8f27e
wayland: handle resize requests after acknowledging the configure
...
The wayland protocol requires that clients commit a new buffer sometime
after `xdg_surface_ack_configure`.
2022-02-28 19:42:11 -05:00
Alexander Orzechowski
e359094cff
wayland: move window state
2022-02-28 19:42:11 -05:00
Kovid Goyal
4b4f904aac
Dont use global variables for the axis discrete counts
2022-02-13 20:56:55 +05:30
Kovid Goyal
6da5a8073c
Wayland: Apparently Java doesnt even set text/plain as a mimetype when copying text. Instead it uses UTF8_STRING and STRING.
...
So check for those as well. Am guessing whoever wrote this code in Java
just copied their old X11 shit without checking the specs. See #4183
2021-11-03 20:46:33 +05:30
Kovid Goyal
62656b24eb
GNOME: Add a new option to control the color of the kitty window titlebar
2021-04-25 11:22:23 +05:30
Kovid Goyal
9a2b0b6995
Wayland CSD: Double clicking on titlebar should toggle window maximize
2021-04-19 08:58:29 +05:30
Kovid Goyal
4e6d5d3f1e
Fix GNOME breaking when setting window geometry
...
The current version of GNOME has a regression that causes the compositor
to send incorrect geometry with the next configure event if the CSD
buffers are created after a call to set_window_geometry.
So call set_window_geometry last. And shake head sadly.
2021-04-07 22:14:09 +05:30
Kovid Goyal
a19d1fc140
Restore size after all types of docking not just maximize/unmaximize
...
We make use of the fact that wayland tells us when the window is being
resized to track actual user requested sizes as opposed to compositor
requested ones.
2021-04-07 15:08:44 +05:30
Kovid Goyal
5a1bd93518
Handle all known xdg top level states
2021-04-07 13:33:06 +05:30
Kovid Goyal
7e78f30739
Wayland: Fix un-maximizing a window not restoring its size to what it was before being maximized
2021-04-05 13:47:50 +05:30
Kovid Goyal
bd6643a523
Use a tile to reduce startup CPU cost of shadows
2021-04-04 18:16:33 +05:30
Kovid Goyal
53f2df115e
Hook up re-render of title bar when title changes
2021-03-29 12:15:47 +05:30
Kovid Goyal
0593158a86
Refactor CSD code to avoid un-needed rerenders and use a single shm pool for all CSD buffers
2021-03-29 12:15:47 +05:30
Kovid Goyal
c1f8372efc
Hide edges when not focused
2021-03-29 12:15:47 +05:30
Kovid Goyal
6e3db0be3d
Rename variable
2021-03-29 12:15:47 +05:30
Kovid Goyal
e7931b0121
Get rid of the no longer needed viewporter protocol
2021-03-29 12:15:47 +05:30
Kovid Goyal
aeb82e7fb0
Refactor the rendering of CSD on Wayland
2021-03-29 12:15:47 +05:30
Kovid Goyal
0510cd47f4
Rename buffer -> edge_buffer
2021-03-25 15:19:11 +05:30
Kovid Goyal
44df11c443
Move CSD metrics into the window object
...
Makes them potentially configurable
2021-03-25 12:52:09 +05:30
Kovid Goyal
63a50ec066
Use the correct mouse cursor theme on GNOME
...
Relies on a working desktop settings portal (xdg-desktop-portal-gtk)
2021-03-25 12:20:13 +05:30
Kovid Goyal
fc8e147e4a
Fix mouse handling when using client side decorations
...
The mouse co-ordinates used by glfw were all wrong.
2021-03-25 09:27:25 +05:30
Kovid Goyal
62997956a0
Start work on Wayland text input protocol support
2021-03-23 16:33:04 +05:30
Kovid Goyal
6d18223f17
Use an id for keyboard focus tracking as well
2021-01-29 11:22:39 +05:30