diff options
author | Benjamin Berg <bberg@redhat.com> | 2019-02-06 16:28:37 +0100 |
---|---|---|
committer | Benjamin Berg <bberg@redhat.com> | 2019-05-27 16:48:25 +0200 |
commit | 2624c77f15755a77169ca45466ee239d99b44ade (patch) | |
tree | 9a6e84776d4d8b33fb123592fd79420ad5ccdd00 /plugins | |
parent | 70abccb8700d9a799e60a07f30ee71c5168e12dc (diff) | |
download | gnome-settings-daemon-2624c77f15755a77169ca45466ee239d99b44ade.tar.gz |
common: Pass new default value during schema migration
This will be required to migrate user settings of keybindings.
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/common/gsd-settings-migrate.c | 9 | ||||
-rw-r--r-- | plugins/common/gsd-settings-migrate.h | 2 | ||||
-rw-r--r-- | plugins/mouse/gsd-mouse-manager.c | 6 | ||||
-rw-r--r-- | plugins/wacom/gsd-wacom-manager.c | 4 |
4 files changed, 12 insertions, 9 deletions
diff --git a/plugins/common/gsd-settings-migrate.c b/plugins/common/gsd-settings-migrate.c index a6d10df0..b72b6987 100644 --- a/plugins/common/gsd-settings-migrate.c +++ b/plugins/common/gsd-settings-migrate.c @@ -34,13 +34,14 @@ gsd_settings_migrate_check (const gchar *origin_schema, guint n_entries) { GSettings *origin_settings, *dest_settings; - GVariant *variant; guint i; origin_settings = g_settings_new_with_path (origin_schema, origin_path); dest_settings = g_settings_new_with_path (dest_schema, dest_path); for (i = 0; i < n_entries; i++) { + g_autoptr(GVariant) variant = NULL; + variant = g_settings_get_user_value (origin_settings, entries[i].origin_key); if (!variant) @@ -48,9 +49,12 @@ gsd_settings_migrate_check (const gchar *origin_schema, if (entries[i].dest_key) { if (entries[i].func) { + g_autoptr(GVariant) new_default = NULL; GVariant *modified; - modified = entries[i].func (variant); + new_default = g_settings_get_default_value (dest_settings, entries[i].dest_key); + + modified = entries[i].func (variant, new_default); g_variant_unref (variant); variant = g_variant_ref_sink (modified); } @@ -59,7 +63,6 @@ gsd_settings_migrate_check (const gchar *origin_schema, } g_settings_reset (origin_settings, entries[i].origin_key); - g_variant_unref (variant); } g_object_unref (origin_settings); diff --git a/plugins/common/gsd-settings-migrate.h b/plugins/common/gsd-settings-migrate.h index 65e8598c..7211a975 100644 --- a/plugins/common/gsd-settings-migrate.h +++ b/plugins/common/gsd-settings-migrate.h @@ -24,7 +24,7 @@ typedef struct _GsdSettingsMigrateEntry GsdSettingsMigrateEntry; -typedef GVariant * (* GsdSettingsMigrateFunc) (GVariant *variant); +typedef GVariant * (* GsdSettingsMigrateFunc) (GVariant *variant, GVariant *new_default); struct _GsdSettingsMigrateEntry { diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c index fc1e4bce..a3f0fc88 100644 --- a/plugins/mouse/gsd-mouse-manager.c +++ b/plugins/mouse/gsd-mouse-manager.c @@ -246,7 +246,7 @@ gsd_mouse_manager_finalize (GObject *object) } static GVariant * -map_speed (GVariant *variant) +map_speed (GVariant *variant, GVariant *new_default) { gdouble value; @@ -259,7 +259,7 @@ map_speed (GVariant *variant) } static GVariant * -map_send_events (GVariant *variant) +map_send_events (GVariant *variant, GVariant *new_default) { gboolean enabled; @@ -273,7 +273,7 @@ map_send_events (GVariant *variant) } static GVariant * -map_edge_scrolling_enabled (GVariant *variant) +map_edge_scrolling_enabled (GVariant *variant, GVariant *new_default) { GsdTouchpadScrollMethod method; diff --git a/plugins/wacom/gsd-wacom-manager.c b/plugins/wacom/gsd-wacom-manager.c index fd249b48..7822c8e9 100644 --- a/plugins/wacom/gsd-wacom-manager.c +++ b/plugins/wacom/gsd-wacom-manager.c @@ -118,7 +118,7 @@ G_DEFINE_TYPE (GsdWacomManager, gsd_wacom_manager, G_TYPE_OBJECT) static gpointer manager_object = NULL; static GVariant * -map_tablet_mapping (GVariant *value) +map_tablet_mapping (GVariant *value, GVariant *new_default) { const gchar *mapping; @@ -127,7 +127,7 @@ map_tablet_mapping (GVariant *value) } static GVariant * -map_tablet_left_handed (GVariant *value) +map_tablet_left_handed (GVariant *value, GVariant *new_default) { const gchar *rotation = g_variant_get_string (value, NULL); return g_variant_new_boolean (g_strcmp0 (rotation, "half") == 0 || |