summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/common/gsd-settings-migrate.c12
-rw-r--r--plugins/common/gsd-settings-migrate.h2
-rw-r--r--plugins/media-keys/gsd-media-keys-manager.c2
-rw-r--r--plugins/mouse/gsd-mouse-manager.c6
-rw-r--r--plugins/wacom/gsd-wacom-manager.c4
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 ||