diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-11-18 14:23:56 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-11-18 14:23:56 +0000 |
commit | 7551f85d4cfb0df0cf6adcf882981cc5601288ea (patch) | |
tree | e7ce4a80da014f3498fb24725d5cdc3b3f80b2fd | |
parent | 184886f89376b1c3acdb729d4c3d13505b41e66f (diff) | |
parent | 3f1bc740e43e1c9c07b85eb92bcb51254a07fe8b (diff) | |
download | gtk+-7551f85d4cfb0df0cf6adcf882981cc5601288ea.tar.gz |
Merge branch 'wayland-minimize' into 'master'
wayland: Implement minimization
Closes #2688
See merge request GNOME/gtk!2861
-rw-r--r-- | gdk/wayland/gdksurface-wayland.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c index 3e58937a89..35378851c6 100644 --- a/gdk/wayland/gdksurface-wayland.c +++ b/gdk/wayland/gdksurface-wayland.c @@ -1766,6 +1766,8 @@ gdk_wayland_surface_create_xdg_toplevel (GdkSurface *surface) case GDK_WAYLAND_SHELL_VARIANT_XDG_SHELL: if (surface->state & GDK_TOPLEVEL_STATE_MAXIMIZED) xdg_toplevel_set_maximized (impl->display_server.xdg_toplevel); + if (surface->state & GDK_TOPLEVEL_STATE_MINIMIZED) + xdg_toplevel_set_minimized (impl->display_server.xdg_toplevel); if (surface->state & GDK_TOPLEVEL_STATE_FULLSCREEN) xdg_toplevel_set_fullscreen (impl->display_server.xdg_toplevel, impl->initial_fullscreen_output); @@ -1773,6 +1775,8 @@ gdk_wayland_surface_create_xdg_toplevel (GdkSurface *surface) case GDK_WAYLAND_SHELL_VARIANT_ZXDG_SHELL_V6: if (surface->state & GDK_TOPLEVEL_STATE_MAXIMIZED) zxdg_toplevel_v6_set_maximized (impl->display_server.zxdg_toplevel_v6); + if (surface->state & GDK_TOPLEVEL_STATE_MINIMIZED) + zxdg_toplevel_v6_set_minimized (impl->display_server.zxdg_toplevel_v6); if (surface->state & GDK_TOPLEVEL_STATE_FULLSCREEN) zxdg_toplevel_v6_set_fullscreen (impl->display_server.zxdg_toplevel_v6, impl->initial_fullscreen_output); @@ -3547,6 +3551,9 @@ gdk_wayland_toplevel_set_transient_for (GdkWaylandToplevel *toplevel, static void gdk_wayland_surface_minimize (GdkSurface *surface) { + GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface); + GdkWaylandDisplay *display_wayland; + if (GDK_SURFACE_DESTROYED (surface) || !SURFACE_IS_TOPLEVEL (surface)) return; @@ -3554,13 +3561,9 @@ gdk_wayland_surface_minimize (GdkSurface *surface) if (!is_realized_toplevel (GDK_WAYLAND_SURFACE (surface))) return; -#if 0 - GdkWaylandSurface *impl = GDK_WAYLAND_SURFACE (surface); - GdkWaylandDisplay *display_wayland; - - /* We cannot use set_minimized() because it does not come with a - * minimized state that we can query or get notified of. This means - * we cannot implement the full GdkSurface API + /* FIXME: xdg_toplevel does not come with a minimized state that we can + * query or get notified of. This means we cannot implement the full + * GdkSurface API, and our state will not reflect minimization. */ display_wayland = GDK_WAYLAND_DISPLAY (gdk_surface_get_display (surface)); switch (display_wayland->shell_variant) @@ -3574,7 +3577,6 @@ gdk_wayland_surface_minimize (GdkSurface *surface) default: g_assert_not_reached (); } -#endif } static void |