[gtk] Revert "wayland: Keep some resources until destroy"
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] Revert "wayland: Keep some resources until destroy"
- Date: Sat, 25 May 2019 18:12:29 +0000 (UTC)
commit c50052e2233ae945c241033b784e7c3bad9444b5
Author: Matthias Clasen <mclasen redhat com>
Date: Sat May 25 18:08:43 2019 +0000
Revert "wayland: Keep some resources until destroy"
This reverts commit f2d598b9a19cd7151c592e9c74d5b0d0ba3c9e48.
gdk/wayland/gdksurface-wayland.c | 89 ++++++++++++++++------------------------
1 file changed, 35 insertions(+), 54 deletions(-)
---
diff --git a/gdk/wayland/gdksurface-wayland.c b/gdk/wayland/gdksurface-wayland.c
index c192c3b09d..f92a8ce2ad 100644
--- a/gdk/wayland/gdksurface-wayland.c
+++ b/gdk/wayland/gdksurface-wayland.c
@@ -2549,15 +2549,39 @@ unmap_popups_for_surface (GdkSurface *surface)
}
static void
-gdk_wayland_surface_unmap_surface (GdkSurface *surface)
+gdk_wayland_surface_hide_surface (GdkSurface *surface)
{
GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_surface_get_display (surface));
GdkSurfaceImplWayland *impl = GDK_SURFACE_IMPL_WAYLAND (surface->impl);
unmap_popups_for_surface (surface);
- if (impl->display_server.xdg_surface)
+ if (impl->display_server.wl_surface)
{
+ if (impl->dummy_egl_surface)
+ {
+ eglDestroySurface (display_wayland->egl_display, impl->dummy_egl_surface);
+ impl->dummy_egl_surface = NULL;
+ }
+
+ if (impl->display_server.dummy_egl_window)
+ {
+ wl_egl_window_destroy (impl->display_server.dummy_egl_window);
+ impl->display_server.dummy_egl_window = NULL;
+ }
+
+ if (impl->egl_surface)
+ {
+ eglDestroySurface (display_wayland->egl_display, impl->egl_surface);
+ impl->egl_surface = NULL;
+ }
+
+ if (impl->display_server.egl_window)
+ {
+ wl_egl_window_destroy (impl->display_server.egl_window);
+ impl->display_server.egl_window = NULL;
+ }
+
if (impl->display_server.xdg_toplevel)
{
xdg_toplevel_destroy (impl->display_server.xdg_toplevel);
@@ -2619,6 +2643,12 @@ gdk_wayland_surface_unmap_surface (GdkSurface *surface)
impl->application.was_set = FALSE;
}
+ wl_surface_destroy (impl->display_server.wl_surface);
+ impl->display_server.wl_surface = NULL;
+
+ g_slist_free (impl->display_server.outputs);
+ impl->display_server.outputs = NULL;
+
if (impl->hint == GDK_SURFACE_TYPE_HINT_DIALOG && !impl->transient_for)
display_wayland->orphan_dialogs =
g_list_remove (display_wayland->orphan_dialogs, surface);
@@ -2631,58 +2661,10 @@ gdk_wayland_surface_unmap_surface (GdkSurface *surface)
impl->mapped = FALSE;
}
-static void
-gdk_wayland_surface_destroy_surface (GdkSurface *surface)
-{
- GdkWaylandDisplay *display_wayland = GDK_WAYLAND_DISPLAY (gdk_surface_get_display (surface));
- GdkSurfaceImplWayland *impl = GDK_SURFACE_IMPL_WAYLAND (surface->impl);
-
- if (impl->display_server.wl_surface)
- {
- if (impl->dummy_egl_surface)
- {
- eglDestroySurface (display_wayland->egl_display, impl->dummy_egl_surface);
- impl->dummy_egl_surface = NULL;
- }
-
- if (impl->display_server.dummy_egl_window)
- {
- wl_egl_window_destroy (impl->display_server.dummy_egl_window);
- impl->display_server.dummy_egl_window = NULL;
- }
-
- if (impl->egl_surface)
- {
- eglDestroySurface (display_wayland->egl_display, impl->egl_surface);
- impl->egl_surface = NULL;
- }
-
- if (impl->display_server.egl_window)
- {
- wl_egl_window_destroy (impl->display_server.egl_window);
- impl->display_server.egl_window = NULL;
- }
-
- g_assert (impl->display_server.xdg_toplevel == NULL);
- g_assert (impl->display_server.xdg_popup == NULL);
- g_assert (impl->display_server.xdg_surface == NULL);
- g_assert (impl->display_server.zxdg_toplevel_v6 == NULL);
- g_assert (impl->display_server.zxdg_popup_v6 == NULL);
- g_assert (impl->display_server.zxdg_surface_v6 == NULL);
- g_assert (impl->display_server.gtk_surface == NULL);
-
- wl_surface_destroy (impl->display_server.wl_surface);
- impl->display_server.wl_surface = NULL;
-
- g_slist_free (impl->display_server.outputs);
- impl->display_server.outputs = NULL;
- }
-}
-
static void
gdk_wayland_surface_hide (GdkSurface *surface)
{
- gdk_wayland_surface_unmap_surface (surface);
+ gdk_wayland_surface_hide_surface (surface);
_gdk_surface_clear_update_area (surface);
}
@@ -2696,7 +2678,7 @@ gdk_surface_wayland_withdraw (GdkSurface *surface)
g_assert (!GDK_SURFACE_IS_MAPPED (surface));
- gdk_wayland_surface_unmap_surface (surface);
+ gdk_wayland_surface_hide_surface (surface);
}
}
@@ -2899,8 +2881,7 @@ gdk_wayland_surface_destroy (GdkSurface *surface,
*/
g_return_if_fail (!foreign_destroy);
- gdk_wayland_surface_unmap_surface (surface);
- gdk_wayland_surface_destroy_surface (surface);
+ gdk_wayland_surface_hide_surface (surface);
if (surface->parent == NULL)
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]