[mutter/wip/carlosg/input-thread: 42/90] backends: Assign stage to events in MetaBackend
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/input-thread: 42/90] backends: Assign stage to events in MetaBackend
- Date: Mon, 23 Nov 2020 16:22:03 +0000 (UTC)
commit c2e0aa57569caf1d51e907921fcd7d29a5185026
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Jul 31 20:17:31 2020 +0200
backends: Assign stage to events in MetaBackend
Don't do this in the MetaSeatNative, this should be detached from
the stage.
src/backends/meta-backend.c | 16 +++++++++++++++-
src/backends/native/meta-seat-native.c | 11 -----------
2 files changed, 15 insertions(+), 12 deletions(-)
---
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c
index 124ea74c09..ddcf29aafe 100644
--- a/src/backends/meta-backend.c
+++ b/src/backends/meta-backend.c
@@ -174,6 +174,14 @@ struct _MetaBackendPrivate
};
typedef struct _MetaBackendPrivate MetaBackendPrivate;
+typedef struct _MetaBackendSource MetaBackendSource;
+
+struct _MetaBackendSource
+{
+ GSource parent;
+ MetaBackend *backend;
+};
+
static void
initable_iface_init (GInitableIface *initable_iface);
@@ -926,10 +934,13 @@ clutter_source_dispatch (GSource *source,
GSourceFunc callback,
gpointer user_data)
{
+ MetaBackendSource *backend_source = (MetaBackendSource *) source;
ClutterEvent *event = clutter_event_get ();
if (event)
{
+ event->any.stage =
+ CLUTTER_STAGE (meta_backend_get_stage (backend_source->backend));
clutter_do_event (event);
clutter_event_free (event);
}
@@ -955,6 +966,7 @@ static gboolean
init_clutter (MetaBackend *backend,
GError **error)
{
+ MetaBackendSource *backend_source;
GSource *source;
clutter_set_custom_backend_func (meta_get_clutter_backend);
@@ -966,7 +978,9 @@ init_clutter (MetaBackend *backend,
return FALSE;
}
- source = g_source_new (&clutter_source_funcs, sizeof (GSource));
+ source = g_source_new (&clutter_source_funcs, sizeof (MetaBackendSource));
+ backend_source = (MetaBackendSource *) source;
+ backend_source->backend = backend;
g_source_attach (source, NULL);
g_source_unref (source);
diff --git a/src/backends/native/meta-seat-native.c b/src/backends/native/meta-seat-native.c
index 6b379440d8..6e7f58f66f 100644
--- a/src/backends/native/meta-seat-native.c
+++ b/src/backends/native/meta-seat-native.c
@@ -248,16 +248,6 @@ static void
queue_event (MetaSeatNative *seat,
ClutterEvent *event)
{
- ClutterStage *stage = meta_seat_native_get_stage (seat);
-
- if (!stage)
- {
- /* No stage yet, drop this event on the floor */
- clutter_event_free (event);
- return;
- }
-
- event->any.stage = stage;
_clutter_event_push (event, FALSE);
}
@@ -1335,7 +1325,6 @@ meta_event_dispatch (GSource *g_source,
{
MetaEventSource *source = (MetaEventSource *) g_source;
MetaSeatNative *seat;
- ClutterEvent *event;
seat = source->seat;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]