diff options
-rw-r--r-- | plugins/common/gsd-settings-migrate.c | 12 | ||||
-rw-r--r-- | plugins/common/gsd-settings-migrate.h | 2 | ||||
-rw-r--r-- | plugins/media-keys/gsd-media-keys-manager.c | 2 | ||||
-rw-r--r-- | plugins/mouse/gsd-mouse-manager.c | 6 | ||||
-rw-r--r-- | plugins/wacom/gsd-wacom-manager.c | 4 |
5 files changed, 15 insertions, 11 deletions
diff --git a/plugins/common/gsd-settings-migrate.c b/plugins/common/gsd-settings-migrate.c index d8e50a9a..a0e5cb8c 100644 --- a/plugins/common/gsd-settings-migrate.c +++ b/plugins/common/gsd-settings-migrate.c @@ -51,17 +51,21 @@ gsd_settings_migrate_check (const gchar *origin_schema, if (entries[i].dest_key) { if (entries[i].func) { + g_autoptr(GVariant) old_default = NULL; g_autoptr(GVariant) new_default = NULL; GVariant *modified; + old_default = g_settings_get_default_value (origin_settings, entries[i].origin_key); 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); + modified = entries[i].func (variant, old_default, new_default); + g_clear_pointer (&variant, g_variant_unref); + if (modified) + variant = g_variant_ref_sink (modified); } - g_settings_set_value (dest_settings, entries[i].dest_key, variant); + if (variant) + g_settings_set_value (dest_settings, entries[i].dest_key, variant); } } diff --git a/plugins/common/gsd-settings-migrate.h b/plugins/common/gsd-settings-migrate.h index 7211a975..b8d2259a 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, GVariant *new_default); +typedef GVariant * (* GsdSettingsMigrateFunc) (GVariant *variant, GVariant *old_default, GVariant *new_default); struct _GsdSettingsMigrateEntry { diff --git a/plugins/media-keys/gsd-media-keys-manager.c b/plugins/media-keys/gsd-media-keys-manager.c index 9eb1bc7d..d02d317b 100644 --- a/plugins/media-keys/gsd-media-keys-manager.c +++ b/plugins/media-keys/gsd-media-keys-manager.c @@ -3176,7 +3176,7 @@ start_media_keys_idle_cb (GsdMediaKeysManager *manager) } static GVariant * -map_keybinding (GVariant *variant, GVariant *new_default) +map_keybinding (GVariant *variant, GVariant *old_default, GVariant *new_default) { g_autoptr(GPtrArray) array = g_ptr_array_new (); g_autofree const gchar **defaults = NULL; diff --git a/plugins/mouse/gsd-mouse-manager.c b/plugins/mouse/gsd-mouse-manager.c index a3f0fc88..701f4af5 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, GVariant *new_default) +map_speed (GVariant *variant, GVariant *old_default, GVariant *new_default) { gdouble value; @@ -259,7 +259,7 @@ map_speed (GVariant *variant, GVariant *new_default) } static GVariant * -map_send_events (GVariant *variant, GVariant *new_default) +map_send_events (GVariant *variant, GVariant *old_default, GVariant *new_default) { gboolean enabled; @@ -273,7 +273,7 @@ map_send_events (GVariant *variant, GVariant *new_default) } static GVariant * -map_edge_scrolling_enabled (GVariant *variant, GVariant *new_default) +map_edge_scrolling_enabled (GVariant *variant, GVariant *old_default, GVariant *new_default) { GsdTouchpadScrollMethod method; diff --git a/plugins/wacom/gsd-wacom-manager.c b/plugins/wacom/gsd-wacom-manager.c index 7822c8e9..e1c8eaa7 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, GVariant *new_default) +map_tablet_mapping (GVariant *value, GVariant *old_default, GVariant *new_default) { const gchar *mapping; @@ -127,7 +127,7 @@ map_tablet_mapping (GVariant *value, GVariant *new_default) } static GVariant * -map_tablet_left_handed (GVariant *value, GVariant *new_default) +map_tablet_left_handed (GVariant *value, GVariant *old_default, GVariant *new_default) { const gchar *rotation = g_variant_get_string (value, NULL); return g_variant_new_boolean (g_strcmp0 (rotation, "half") == 0 || |