backends: Handle numlock saving/restoring directly in backends

Simplify the handling of numlock state, so it can be entirely handled
within the input thread. Since the saving/restoring is triggered inside
each backend code, there's no need anymore for meta_backend_set_numlock().

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1403>
This commit is contained in:
Carlos Garnacho
2020-11-26 23:10:25 +01:00
committed by Marge Bot
parent 23f95348fd
commit f7fbd6ea6f
11 changed files with 111 additions and 152 deletions

View File

@ -157,7 +157,6 @@ struct _MetaBackendPrivate
gboolean is_pointer_position_initialized;
guint device_update_idle_id;
gulong keymap_state_changed_id;
GHashTable *device_monitors;
@ -198,16 +197,6 @@ meta_backend_finalize (GObject *object)
MetaBackend *backend = META_BACKEND (object);
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
if (priv->keymap_state_changed_id)
{
ClutterSeat *seat;
ClutterKeymap *keymap;
seat = clutter_backend_get_default_seat (priv->clutter_backend);
keymap = clutter_seat_get_keymap (seat);
g_clear_signal_handler (&priv->keymap_state_changed_id, keymap);
}
g_list_free_full (priv->gpus, g_object_unref);
g_clear_object (&priv->current_device);
@ -579,7 +568,6 @@ meta_backend_real_post_init (MetaBackend *backend)
{
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
ClutterSeat *seat = clutter_backend_get_default_seat (priv->clutter_backend);
ClutterKeymap *keymap = clutter_seat_get_keymap (seat);
priv->stage = meta_stage_new (backend);
clutter_actor_realize (priv->stage);
@ -602,15 +590,6 @@ meta_backend_real_post_init (MetaBackend *backend)
priv->input_settings = meta_backend_create_input_settings (backend);
if (priv->input_settings)
{
priv->keymap_state_changed_id =
g_signal_connect_swapped (keymap, "state-changed",
G_CALLBACK (meta_input_settings_maybe_save_numlock_state),
priv->input_settings);
meta_input_settings_maybe_restore_numlock_state (priv->input_settings);
}
priv->input_mapper = meta_input_mapper_new ();
g_signal_connect (priv->input_mapper, "device-mapped",
G_CALLBACK (input_mapper_device_mapped_cb), backend);
@ -1357,14 +1336,6 @@ meta_backend_lock_layout_group (MetaBackend *backend,
META_BACKEND_GET_CLASS (backend)->lock_layout_group (backend, idx);
}
void
meta_backend_set_numlock (MetaBackend *backend,
gboolean numlock_state)
{
META_BACKEND_GET_CLASS (backend)->set_numlock (backend, numlock_state);
}
/**
* meta_backend_get_stage:
* @backend: A #MetaBackend