GdkWaylandWindow: Unexport when finalizing

The application might not have exported, and it'll be too late for it
at this point anyway, so lets be helpful and not leak it.

https://bugzilla.gnome.org/show_bug.cgi?id=782109
This commit is contained in:
Jonas Ådahl 2017-05-08 12:09:00 +08:00 committed by Matthias Clasen
parent 6d7749898d
commit 251e216052

View File

@ -237,6 +237,8 @@ static void calculate_moved_to_rect_result (GdkWindow *window,
gboolean *flipped_x,
gboolean *flipped_y);
static gboolean gdk_wayland_window_is_exported (GdkWindow *window);
GType _gdk_window_impl_wayland_get_type (void);
G_DEFINE_TYPE (GdkWindowImplWayland, _gdk_window_impl_wayland, GDK_TYPE_WINDOW_IMPL)
@ -956,6 +958,9 @@ gdk_window_impl_wayland_finalize (GObject *object)
impl = GDK_WINDOW_IMPL_WAYLAND (object);
if (gdk_wayland_window_is_exported (window))
gdk_wayland_window_unexport_handle (window);
g_free (impl->title);
g_free (impl->application.application_id);
@ -3989,6 +3994,12 @@ static const struct zxdg_exported_v1_listener xdg_exported_listener = {
* Since: 3.22
*/
static gboolean
gdk_wayland_window_is_exported (GdkWindow *window)
{
return !!impl->display_server.xdg_exported;
}
/**
* gdk_wayland_window_export_handle:
* @window: the #GdkWindow to obtain a handle for