Skip to content

Commit

Permalink
meta-input-settings: Re-apply settings once the display is
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
mtwebster committed Oct 20, 2022
1 parent 1220f46 commit 48b8252
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/backends/meta-input-settings-private.h
Original file line number Diff line number Diff line change
Expand Up @@ -152,5 +152,6 @@ gchar * meta_input_settings_get_pad_action_label (MetaIn

void meta_input_settings_maybe_save_numlock_state (MetaInputSettings *input_settings);
void meta_input_settings_maybe_restore_numlock_state (MetaInputSettings *input_settings);
void meta_input_settings_refresh (MetaInputSettings *input_settings);

#endif /* META_INPUT_SETTINGS_PRIVATE_H */
19 changes: 17 additions & 2 deletions src/backends/meta-input-settings.c
Original file line number Diff line number Diff line change
Expand Up @@ -1952,9 +1952,8 @@ power_save_mode_changed_cb (MetaMonitorManager *manager,
}

static void
meta_input_settings_constructed (GObject *object)
refresh_input_settings (MetaInputSettings *input_settings)
{
MetaInputSettings *input_settings = META_INPUT_SETTINGS (object);
GSList *devices, *d;

devices = meta_input_settings_get_devices (input_settings, CLUTTER_TOUCHPAD_DEVICE);
Expand All @@ -1968,6 +1967,14 @@ meta_input_settings_constructed (GObject *object)
check_mappable_devices (input_settings);
}

static void
meta_input_settings_constructed (GObject *object)
{
MetaInputSettings *input_settings = META_INPUT_SETTINGS (object);

refresh_input_settings (input_settings);
}

static void
meta_input_settings_class_init (MetaInputSettingsClass *klass)
{
Expand Down Expand Up @@ -2740,3 +2747,11 @@ meta_input_settings_maybe_restore_numlock_state (MetaInputSettings *input_settin
numlock_state = g_settings_get_boolean (priv->keyboard_settings, "numlock-state");
meta_backend_set_numlock (meta_get_backend (), numlock_state);
}

void
meta_input_settings_refresh (MetaInputSettings *input_settings)
{
g_return_if_fail (META_IS_INPUT_SETTINGS (input_settings));

refresh_input_settings (input_settings);
}
2 changes: 2 additions & 0 deletions src/core/display.c
Original file line number Diff line number Diff line change
Expand Up @@ -985,6 +985,8 @@ meta_display_open (void)

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

meta_input_settings_refresh (meta_backend_get_input_settings (backend));

/* Done opening new display */
display->display_opening = FALSE;

Expand Down

0 comments on commit 48b8252

Please sign in to comment.