mirror of
https://github.com/brl/mutter.git
synced 2025-01-11 12:12:25 +00:00
backends: Assign stage to events in MetaBackend
Don't do this in the MetaSeatNative, this should be detached from the stage. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403>
This commit is contained in:
parent
05edf4815b
commit
0cb0dd3538
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user