diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2020-10-28 19:41:40 +0100 |
---|---|---|
committer | Marge Bot <marge-bot@gnome.org> | 2020-11-27 15:14:33 +0000 |
commit | efc1592d4dba446635a002ef6bc525937d1434f7 (patch) | |
tree | ea901ccec83bf7f4110a6edb10d1cf15612a04b1 | |
parent | fb2440a1cf50c005071b6f901066a8c93ce2763e (diff) | |
download | mutter-efc1592d4dba446635a002ef6bc525937d1434f7.tar.gz |
backends: Make pointer cursor invisible until the stage is shown
We are able to show the cursor before that, it doesn't mean we should.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403>
-rw-r--r-- | src/backends/meta-backend.c | 11 | ||||
-rw-r--r-- | src/backends/meta-cursor-tracker.c | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c index fb05e078c..4d213b416 100644 --- a/src/backends/meta-backend.c +++ b/src/backends/meta-backend.c @@ -564,6 +564,14 @@ input_mapper_device_aspect_ratio_cb (MetaInputMapper *mapper, } static void +on_stage_shown_cb (MetaBackend *backend) +{ + MetaBackendPrivate *priv = meta_backend_get_instance_private (backend); + + meta_cursor_tracker_set_pointer_visible (priv->cursor_tracker, TRUE); +} + +static void meta_backend_real_post_init (MetaBackend *backend) { MetaBackendPrivate *priv = meta_backend_get_instance_private (backend); @@ -572,6 +580,9 @@ meta_backend_real_post_init (MetaBackend *backend) priv->stage = meta_stage_new (backend); clutter_actor_realize (priv->stage); 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); diff --git a/src/backends/meta-cursor-tracker.c b/src/backends/meta-cursor-tracker.c index 6b3d2289a..d2bd22606 100644 --- a/src/backends/meta-cursor-tracker.c +++ b/src/backends/meta-cursor-tracker.c @@ -196,7 +196,7 @@ meta_cursor_tracker_init (MetaCursorTracker *tracker) MetaCursorTrackerPrivate *priv = meta_cursor_tracker_get_instance_private (tracker); - priv->is_showing = TRUE; + priv->is_showing = FALSE; priv->x = -1.0; priv->y = -1.0; } |