wayland/xdg-toplevel-drag: Add destroy signal to data source

It will be used by xdg-toplevel-drag protocol implementation.

Signed-off-by: Nick Diego Yamane <nickdiego@igalia.com>
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4107>
This commit is contained in:
Nick Diego Yamane 2024-11-25 22:02:15 -04:00
parent 3047b2ce26
commit 848612b08f

View File

@ -60,6 +60,14 @@ enum
static GParamSpec *props[N_PROPS] = { 0 }; static GParamSpec *props[N_PROPS] = { 0 };
enum
{
DESTROY,
LAST_SIGNAL
};
static guint signals[LAST_SIGNAL] = { 0 };
G_DEFINE_TYPE_WITH_PRIVATE (MetaWaylandDataSource, meta_wayland_data_source, G_DEFINE_TYPE_WITH_PRIVATE (MetaWaylandDataSource, meta_wayland_data_source,
G_TYPE_OBJECT); G_TYPE_OBJECT);
@ -231,6 +239,13 @@ meta_wayland_data_source_class_init (MetaWaylandDataSourceClass *klass)
G_PARAM_STATIC_STRINGS); G_PARAM_STATIC_STRINGS);
g_object_class_install_properties (object_class, N_PROPS, props); g_object_class_install_properties (object_class, N_PROPS, props);
signals[DESTROY] =
g_signal_new ("destroy",
G_TYPE_FROM_CLASS (object_class),
G_SIGNAL_RUN_LAST,
0, NULL, NULL, NULL,
G_TYPE_NONE, 0);
} }
static void static void
@ -298,6 +313,8 @@ destroy_data_source (struct wl_resource *resource)
{ {
MetaWaylandDataSource *source = wl_resource_get_user_data (resource); MetaWaylandDataSource *source = wl_resource_get_user_data (resource);
g_signal_emit (source, signals[DESTROY], 0);
meta_wayland_data_source_set_resource (source, NULL); meta_wayland_data_source_set_resource (source, NULL);
g_object_unref (source); g_object_unref (source);
} }