Skip to content

Commit 48b8252

Browse files
committed
meta-input-settings: Re-apply settings once the display is
done setting up. Setting tablet mapping mode (and probably other things) fails at startup because there is no MetaDisplay yet for error handling. This isn't really a problem in an active session, because current device states are kept by xserver, but at session start, none of that state has been set up yet. Fixes: linuxmint/cinnamon#11231.
1 parent 1220f46 commit 48b8252

File tree

3 files changed

+20
-2
lines changed

3 files changed

+20
-2
lines changed

src/backends/meta-input-settings-private.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -152,5 +152,6 @@ gchar * meta_input_settings_get_pad_action_label (MetaIn
152152

153153
void meta_input_settings_maybe_save_numlock_state (MetaInputSettings *input_settings);
154154
void meta_input_settings_maybe_restore_numlock_state (MetaInputSettings *input_settings);
155+
void meta_input_settings_refresh (MetaInputSettings *input_settings);
155156

156157
#endif /* META_INPUT_SETTINGS_PRIVATE_H */

src/backends/meta-input-settings.c

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1952,9 +1952,8 @@ power_save_mode_changed_cb (MetaMonitorManager *manager,
19521952
}
19531953

19541954
static void
1955-
meta_input_settings_constructed (GObject *object)
1955+
refresh_input_settings (MetaInputSettings *input_settings)
19561956
{
1957-
MetaInputSettings *input_settings = META_INPUT_SETTINGS (object);
19581957
GSList *devices, *d;
19591958

19601959
devices = meta_input_settings_get_devices (input_settings, CLUTTER_TOUCHPAD_DEVICE);
@@ -1968,6 +1967,14 @@ meta_input_settings_constructed (GObject *object)
19681967
check_mappable_devices (input_settings);
19691968
}
19701969

1970+
static void
1971+
meta_input_settings_constructed (GObject *object)
1972+
{
1973+
MetaInputSettings *input_settings = META_INPUT_SETTINGS (object);
1974+
1975+
refresh_input_settings (input_settings);
1976+
}
1977+
19711978
static void
19721979
meta_input_settings_class_init (MetaInputSettingsClass *klass)
19731980
{
@@ -2740,3 +2747,11 @@ meta_input_settings_maybe_restore_numlock_state (MetaInputSettings *input_settin
27402747
numlock_state = g_settings_get_boolean (priv->keyboard_settings, "numlock-state");
27412748
meta_backend_set_numlock (meta_get_backend (), numlock_state);
27422749
}
2750+
2751+
void
2752+
meta_input_settings_refresh (MetaInputSettings *input_settings)
2753+
{
2754+
g_return_if_fail (META_IS_INPUT_SETTINGS (input_settings));
2755+
2756+
refresh_input_settings (input_settings);
2757+
}

src/core/display.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -985,6 +985,8 @@ meta_display_open (void)
985985

986986
display->sound_player = g_object_new (META_TYPE_SOUND_PLAYER, NULL);
987987

988+
meta_input_settings_refresh (meta_backend_get_input_settings (backend));
989+
988990
/* Done opening new display */
989991
display->display_opening = FALSE;
990992

0 commit comments

Comments
 (0)