Matthias Clasen
327c93066d
build: Don't require bleeding-edge wayland-protocols
...
The 1.32 wayland-protocols release is not in distribution
builds yet, so a hard dependency on it is not helpful.
2023-07-30 11:40:09 +03:00
Jonas Ådahl
7f946eff01
gtk: Add suspended window state
...
This is implemented using a new xdg_toplevel `suspended` state, and is
meant for allowing applications to know when they can stop doing
unnecessary work and thus save power.
In the other backends, the `suspended` state is set at the same time as
`minimized` as it's the closest there is to traditional windowing
systems.
2023-07-30 11:40:09 +03:00
Matthias Clasen
89d993b6ec
wayland: Try harder to be compatible
...
We can keep the old unexport_handle api working
in the case that there is only a single exported
handle.
2023-05-15 00:20:24 -04:00
Matthias Clasen
250a5c0dfd
Deprecate gdk_wayland_toplevel_unexport_handle
...
It doesn't do anything anymore, and is no longer
used internally. The replacement is
gdk_wayland_toplevel_drop_exported_handled().
2023-05-15 00:20:24 -04:00
Matthias Clasen
af3ceb5755
wayland: Reimplement exporting
...
Change things so that every call to export_handle
creates a new handle, and unexport_handle destroys
the handle that it is given.
2023-05-14 23:49:44 -04:00
Matthias Clasen
982a696311
wayland: Give toplevels a destroy hook
...
We will need to do some cleanup before the
wl_surface is destroyed, so add a hook for that.
2023-05-14 23:49:44 -04:00
Matthias Clasen
e5f1e4545d
gdk: Change the private export handle api
...
Make unexport_handle take the handle, so we
can in the future deal with multiple exports.
Update the one caller in gtkwindow.c to pass
the handle.
2023-05-14 23:49:44 -04:00
Matthias Clasen
bf87a40b20
wayland: Add new backend api
...
Add an alternative to unexport_handle that
does take the handle.
2023-05-14 23:49:44 -04:00
Matthias Clasen
5393173afa
wayland: Remove some unused fields
2023-05-14 13:06:00 -04:00
Benjamin Otte
03d7ce3287
wayland: Set default title in toplevel_init()
2023-04-26 21:03:34 +02:00
Benjamin Otte
808cde74be
wayland: Construct the frame clock in the surface
...
... instead of passing it to g_object_new().
2023-04-26 21:03:34 +02:00
Benjamin Otte
35c2d85468
wayland: Move toplevel-specific code into the toplevel
...
The display->toplevels tracking belongs to GdkWAylandToplevel.
2023-04-26 21:03:34 +02:00
Benjamin Otte
5d3cec5441
wayland: Don't destroy the wl_surface on hide()
...
We want to keep the wl_surface around, because surfaces create their
resources on construct and keep them until destroyed. See the HWND ond
Windows and the XWindow on X11.
This is relevant for graphics resources, where we want to have access
to the VkSurface and eglSurface while the GdkSurface is hidden.
We also want these surfaces to be permanent and not change during the
lifetime of the GdkSurface.
What we can - and must - destroy however are the xdg surfaces, because
those handle visibility on screen.
And we also need to ensure no buffer is attached, so that during the
next creation of the xdg surface we don't get a protocol error.
2023-04-13 04:23:35 +02:00
Benjamin Otte
8dd5d649b8
wayland: Use GdkFractionalScale for surface scale
...
We still always round it to integers when we read it, but we store it as a fraction.
So we could now use it for fractional scaling.
2023-04-01 18:23:38 +02:00
Benjamin Otte
68b8c5cd99
wayland: Use gtk_shell1_get_version()
...
... or correct gtk_surface1_get_version() alternative.
2023-04-01 02:22:21 +02:00
Matthias Clasen
3a5282abe1
wayland: Don't crash without xdg_activation_v1
...
If the compositor does not support this protocol,
we can't use it.
Fixes : #5701
2023-03-26 10:11:14 -04:00
Jonas Ådahl
dd9433b50e
wayland: Add event queue dispatch helper
...
Dispatch failing should always fatal; use a helper to centralize the
error handling everywhere.
2023-02-11 23:13:39 +01:00
Jonas Ådahl
a7fb9a6865
wayland: Handle dispatch failing in a couple of more places
...
Without doing this, we'll end up with risking GTK processes sitting
eating 100% CPU instead of just exit(1):ing.
2023-02-11 11:42:21 +01:00
Matthias Clasen
7a30a21405
waylandsurface: Introduce a few vfuncs
2023-01-06 17:00:45 -05:00
Matthias Clasen
352443d5a5
waylandtoplevel: Drop unused exports
2023-01-06 16:50:20 -05:00
Matthias Clasen
793689789c
Misc cleanups
...
Detangle compute_size, among other things.
2023-01-06 16:50:19 -05:00
Matthias Clasen
d61ec38974
wip: Split off GdkWaylandToplevel
...
This still needs some more cleanup.
2023-01-06 16:50:19 -05:00