mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-09-20 05:50:11 +00:00
wayland: Push NULL buffer when hiding a GdkWindow
This is how windows are meant to be hidden as per the wayland protocol, there's no need to destroy the xdg_surface and other interfaces. Also, rename gdk_wayland_window_hide_surface() to clear_surface(), as that's what it does. https://bugzilla.gnome.org/show_bug.cgi?id=773686
This commit is contained in:
parent
94ae322f65
commit
6beb0b91c9
@ -2439,7 +2439,7 @@ unmap_popups_for_window (GdkWindow *window)
|
||||
}
|
||||
|
||||
static void
|
||||
gdk_wayland_window_hide_surface (GdkWindow *window)
|
||||
gdk_wayland_window_clear_surface (GdkWindow *window)
|
||||
{
|
||||
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
@ -2534,7 +2534,10 @@ gdk_wayland_window_hide_surface (GdkWindow *window)
|
||||
static void
|
||||
gdk_wayland_window_hide (GdkWindow *window)
|
||||
{
|
||||
gdk_wayland_window_hide_surface (window);
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
|
||||
wl_surface_attach (impl->display_server.wl_surface, NULL, 0, 0);
|
||||
wl_surface_commit (impl->display_server.wl_surface);
|
||||
_gdk_window_clear_update_area (window);
|
||||
}
|
||||
|
||||
@ -2548,7 +2551,7 @@ gdk_window_wayland_withdraw (GdkWindow *window)
|
||||
|
||||
g_assert (!GDK_WINDOW_IS_MAPPED (window));
|
||||
|
||||
gdk_wayland_window_hide_surface (window);
|
||||
gdk_wayland_window_clear_surface (window);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2835,7 +2838,7 @@ gdk_wayland_window_destroy (GdkWindow *window,
|
||||
*/
|
||||
g_return_if_fail (!foreign_destroy);
|
||||
|
||||
gdk_wayland_window_hide_surface (window);
|
||||
gdk_wayland_window_clear_surface (window);
|
||||
drop_cairo_surfaces (window);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user