mirror of
https://github.com/brl/mutter.git
synced 2025-06-14 17:29:31 +00:00
backend: Sync cursor visibility after startup
When the stage is technically shown depends on when the plugin decides to do so, so don't rely on it happening when everything is setup. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2718>
This commit is contained in:
@ -516,7 +516,15 @@ input_mapper_device_aspect_ratio_cb (MetaInputMapper *mapper,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
on_stage_shown_cb (MetaBackend *backend)
|
on_prepare_shutdown (MetaContext *context,
|
||||||
|
MetaBackend *backend)
|
||||||
|
{
|
||||||
|
g_signal_emit (backend, signals[PREPARE_SHUTDOWN], 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
on_started (MetaContext *context,
|
||||||
|
MetaBackend *backend)
|
||||||
{
|
{
|
||||||
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
|
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
|
||||||
ClutterSeat *seat = priv->default_seat;
|
ClutterSeat *seat = priv->default_seat;
|
||||||
@ -525,13 +533,6 @@ on_stage_shown_cb (MetaBackend *backend)
|
|||||||
determine_hotplug_pointer_visibility (seat));
|
determine_hotplug_pointer_visibility (seat));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
on_prepare_shutdown (MetaContext *context,
|
|
||||||
MetaBackend *backend)
|
|
||||||
{
|
|
||||||
g_signal_emit (backend, signals[PREPARE_SHUTDOWN], 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_backend_real_post_init (MetaBackend *backend)
|
meta_backend_real_post_init (MetaBackend *backend)
|
||||||
{
|
{
|
||||||
@ -542,9 +543,6 @@ meta_backend_real_post_init (MetaBackend *backend)
|
|||||||
priv->stage = meta_stage_new (backend);
|
priv->stage = meta_stage_new (backend);
|
||||||
clutter_actor_realize (priv->stage);
|
clutter_actor_realize (priv->stage);
|
||||||
META_BACKEND_GET_CLASS (backend)->select_stage_events (backend);
|
META_BACKEND_GET_CLASS (backend)->select_stage_events (backend);
|
||||||
g_signal_connect_object (priv->stage, "show",
|
|
||||||
G_CALLBACK (on_stage_shown_cb), backend,
|
|
||||||
G_CONNECT_SWAPPED);
|
|
||||||
|
|
||||||
meta_monitor_manager_setup (priv->monitor_manager);
|
meta_monitor_manager_setup (priv->monitor_manager);
|
||||||
|
|
||||||
@ -595,6 +593,8 @@ meta_backend_real_post_init (MetaBackend *backend)
|
|||||||
|
|
||||||
g_signal_connect (priv->context, "prepare-shutdown",
|
g_signal_connect (priv->context, "prepare-shutdown",
|
||||||
G_CALLBACK (on_prepare_shutdown), backend);
|
G_CALLBACK (on_prepare_shutdown), backend);
|
||||||
|
g_signal_connect (priv->context, "started",
|
||||||
|
G_CALLBACK (on_started), backend);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
Reference in New Issue
Block a user