wayland: Destroy the xdg_imported after the wl_surface

This way the window manager can handle destruction while having the
transient-for relationship still valid.

https://bugzilla.gnome.org/show_bug.cgi?id=791062
This commit is contained in:
Jonas Ådahl 2017-12-01 16:03:34 +08:00 committed by Matthias Clasen
parent dee5142c91
commit 25dc32c1a1

View File

@ -2516,8 +2516,6 @@ gdk_wayland_window_hide_surface (GdkWindow *window)
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window)); GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_window_get_display (window));
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl); GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
unset_transient_for_exported (window);
unmap_popups_for_window (window); unmap_popups_for_window (window);
if (impl->display_server.wl_surface) if (impl->display_server.wl_surface)
@ -2599,6 +2597,8 @@ gdk_wayland_window_hide_surface (GdkWindow *window)
g_list_remove (display_wayland->orphan_dialogs, window); g_list_remove (display_wayland->orphan_dialogs, window);
} }
unset_transient_for_exported (window);
_gdk_wayland_window_clear_saved_size (window); _gdk_wayland_window_clear_saved_size (window);
impl->pending_commit = FALSE; impl->pending_commit = FALSE;
impl->mapped = FALSE; impl->mapped = FALSE;