Ivan Molodetskikh
a5955106ea
Fix xdg-foreign check
...
It was checking for xdg-foreign v1 instead of "v1 or v2".
2024-03-08 17:28:35 +04:00
Matthias Clasen
dfed398371
Merge branch 'gtk4-edge-tiling-resize-fix' into 'main'
...
[gtk4/wayland] Infer edge constraints from tiled edges.
See merge request GNOME/gtk!6745
2024-02-27 17:39:04 +00:00
Matthias Clasen
f779832861
Tweak profiling strings
...
Capitalize our mark names, and use GTK as category.
The justification is: it looks better in sysprof.
2024-01-21 14:02:08 -05:00
Carlos Garnacho
070f3a61ac
gdk/wayland: Bail out on titlebar gestures with no seat
...
This API might be called programmatically at a time that there's no
seats, handle this situation by returning FALSE in the GDK API.
Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/6335
2024-01-20 01:27:27 +01:00
Carlos Garnacho
022347fa85
gdk/wayland: Avoid activation paths with no seats
...
When a toplevel is focused programmatically and there is no
underlying seat, we cannot attempt to focus it with no
focus to be obtained, nor serials serials to use.
Related: https://gitlab.gnome.org/GNOME/gtk/-/issues/6335
2024-01-20 01:27:27 +01:00
Emilio Cobos Álvarez
2f5278a139
[gtk4/wayland] Infer edge constraints from tiled edges.
...
This is the Gtk4 version of !6742 , which fixes the same bug as described
there.
2024-01-12 22:40:22 +01:00
Carlos Garnacho
0c19ef6c2c
gdk/wayland: Improve recent serial lookup
...
This function takes an event, so the place(s) that do
not have one readily available can only pass NULL, so
the serial lookup will only work for the pointer.
Pass a device (plus optional sequence) to this function,
as these places do at least have the corresponding
GdkDevice at hand.
Fixes serial lookups for DnD, for other devices than
pointers (e.g. tablets, or touch).
2023-11-24 23:30:36 +01:00
Jonas Ådahl
aecc76d916
wayland: Bind correct xdg_wm_base version
...
Otherwise we won't get the suspend state.
2023-09-12 21:51:59 +08:00
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