mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-11-08 17:50:10 +00:00
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:
parent
621d1bb4ec
commit
71adc74f27
@ -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)
|
||||
@ -950,12 +952,16 @@ gdk_window_impl_wayland_beep (GdkWindow *window)
|
||||
static void
|
||||
gdk_window_impl_wayland_finalize (GObject *object)
|
||||
{
|
||||
GdkWindow *window = GDK_WINDOW (object);
|
||||
GdkWindowImplWayland *impl;
|
||||
|
||||
g_return_if_fail (GDK_IS_WINDOW_IMPL_WAYLAND (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);
|
||||
@ -3983,6 +3989,14 @@ static const struct zxdg_exported_v1_listener xdg_exported_listener = {
|
||||
* Since: 3.22
|
||||
*/
|
||||
|
||||
static gboolean
|
||||
gdk_wayland_window_is_exported (GdkWindow *window)
|
||||
{
|
||||
GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
|
||||
|
||||
return !!impl->display_server.xdg_exported;
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_wayland_window_export_handle:
|
||||
* @window: the #GdkWindow to obtain a handle for
|
||||
|
Loading…
Reference in New Issue
Block a user