g_list_free_full (display_wayland->on_has_globals_closures, g_free);
+ g_clear_pointer (&display_wayland->cursor_theme, wl_cursor_theme_destroy);
g_clear_pointer (&display_wayland->compositor, wl_compositor_destroy);
- g_clear_pointer (&display_wayland->shm, wl_shm_destroy);
g_clear_pointer (&display_wayland->xdg_wm_base, xdg_wm_base_destroy);
g_clear_pointer (&display_wayland->zxdg_shell_v6, zxdg_shell_v6_destroy);
g_clear_pointer (&display_wayland->gtk_shell, gtk_shell1_destroy);
g_clear_pointer (&display_wayland->fractional_scale, wp_fractional_scale_manager_v1_destroy);
g_clear_pointer (&display_wayland->viewporter, wp_viewporter_destroy);
+ g_clear_pointer (&display_wayland->shm, wl_shm_destroy);
g_clear_pointer (&display_wayland->wl_registry, wl_registry_destroy);
- g_clear_pointer (&display_wayland->wl_display, wl_display_disconnect);
+ g_list_store_remove_all (display_wayland->monitors);
G_OBJECT_CLASS (gdk_wayland_display_parent_class)->dispose (object);
+
+ g_clear_pointer (&display_wayland->wl_display, wl_display_disconnect);
}
static void
_gdk_wayland_display_finalize_cursors (display_wayland);
+ g_object_unref (display_wayland->monitors);
+
g_free (display_wayland->startup_notification_id);
g_free (display_wayland->cursor_theme_name);
xkb_context_unref (display_wayland->xkb_context);
- g_clear_pointer (&display_wayland->cursor_theme, wl_cursor_theme_destroy);
-
- g_list_store_remove_all (display_wayland->monitors);
- g_object_unref (display_wayland->monitors);
-
if (display_wayland->settings)
g_hash_table_destroy (display_wayland->settings);
g_clear_object (&display_wayland->settings_portal);
- wl_display_disconnect (display_wayland->wl_display);
-
G_OBJECT_CLASS (gdk_wayland_display_parent_class)->finalize (object);
}
g_slist_free (pointer->pointer_surface_outputs);
}
+static void
+gdk_wayland_seat_dispose (GObject *object)
+{
+ GdkWaylandSeat *seat = GDK_WAYLAND_SEAT (object);
+
+ g_clear_pointer (&seat->wl_seat, wl_seat_destroy);
+ g_clear_pointer (&seat->wl_pointer, wl_pointer_destroy);
+ g_clear_pointer (&seat->wl_keyboard, wl_keyboard_destroy);
+ g_clear_pointer (&seat->wl_touch, wl_touch_destroy);
+ g_clear_pointer (&seat->wp_pointer_gesture_swipe, zwp_pointer_gesture_swipe_v1_destroy);
+ g_clear_pointer (&seat->wp_pointer_gesture_pinch, zwp_pointer_gesture_pinch_v1_destroy);
+ g_clear_pointer (&seat->wp_pointer_gesture_hold, zwp_pointer_gesture_hold_v1_destroy);
+ g_clear_pointer (&seat->wp_tablet_seat, zwp_tablet_seat_v2_destroy);
+
+ G_OBJECT_CLASS (gdk_wayland_seat_parent_class)->dispose (object);
+}
+
static void
gdk_wayland_seat_finalize (GObject *object)
{
GdkSeatClass *seat_class = GDK_SEAT_CLASS (klass);
object_class->finalize = gdk_wayland_seat_finalize;
+ object_class->dispose = gdk_wayland_seat_dispose;
seat_class->get_capabilities = gdk_wayland_seat_get_capabilities;
seat_class->grab = gdk_wayland_seat_grab;