backends/input-settings: Don't bind mouse GSettings to ClutterSettings
On Wayland MetaInputSettings is part of the input thread. Connecting a GSettings binding to the default ClutterSettings could result in the change notification being emitted on the input thread. This then could end up triggering the same handler from two different threads at the same time. In the case of the ClutterText layout cache it was attempting to unref the same layout twice, leading to a crash. This can be avoided by simply removing the GSettings bind. This does not cause changes to this setting to be missed by ClutterSettings because it itself already sets up a bind. Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/1696 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1776>
This commit is contained in:
parent
236e9ec68f
commit
330609e887
@ -1796,10 +1796,6 @@ meta_input_settings_init (MetaInputSettings *settings)
|
|||||||
g_signal_connect (priv->mouse_settings, "changed",
|
g_signal_connect (priv->mouse_settings, "changed",
|
||||||
G_CALLBACK (meta_input_settings_changed_cb), settings);
|
G_CALLBACK (meta_input_settings_changed_cb), settings);
|
||||||
|
|
||||||
g_settings_bind (priv->mouse_settings, "double-click",
|
|
||||||
clutter_settings_get_default(), "double-click-time",
|
|
||||||
G_SETTINGS_BIND_GET);
|
|
||||||
|
|
||||||
priv->touchpad_settings = g_settings_new ("org.gnome.desktop.peripherals.touchpad");
|
priv->touchpad_settings = g_settings_new ("org.gnome.desktop.peripherals.touchpad");
|
||||||
g_signal_connect (priv->touchpad_settings, "changed",
|
g_signal_connect (priv->touchpad_settings, "changed",
|
||||||
G_CALLBACK (meta_input_settings_changed_cb), settings);
|
G_CALLBACK (meta_input_settings_changed_cb), settings);
|
||||||
|
Loading…
Reference in New Issue
Block a user