From f8ccbdf8a85689b93a174f796066e656e28345d9 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Thu, 15 Jan 2015 19:57:20 +0100 Subject: common: Migrate input settings to gsettings-desktop-schemas keys The deprecated keys are kept in isolated ".deprecated" suffixed schemas. On plugin startup, the settings-daemon paths are opened with these legacy schemas, and all user-modified keys are dumped to the new location and reset. This ensures the transition just happens once per-key, and ensures the dconf database is left clean. https://bugzilla.gnome.org/show_bug.cgi?id=742593 --- plugins/keyboard/gsd-keyboard-manager.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'plugins/keyboard') diff --git a/plugins/keyboard/gsd-keyboard-manager.c b/plugins/keyboard/gsd-keyboard-manager.c index 55ac2d0b..df496dcd 100644 --- a/plugins/keyboard/gsd-keyboard-manager.c +++ b/plugins/keyboard/gsd-keyboard-manager.c @@ -45,6 +45,7 @@ #include "gsd-keyboard-manager.h" #include "gsd-input-helper.h" #include "gsd-enums.h" +#include "gsd-settings-migrate.h" #define GSD_KEYBOARD_MANAGER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_KEYBOARD_MANAGER, GsdKeyboardManagerPrivate)) @@ -833,12 +834,29 @@ gsd_keyboard_manager_finalize (GObject *object) G_OBJECT_CLASS (gsd_keyboard_manager_parent_class)->finalize (object); } +static void +migrate_keyboard_settings (void) +{ + GsdSettingsMigrateEntry entries[] = { + { "repeat", "repeat", NULL }, + { "repeat-interval", "repeat-interval", NULL }, + { "delay", "delay", NULL } + }; + + gsd_settings_migrate_check ("org.gnome.settings-daemon.peripherals.keyboard.deprecated", + "/org/gnome/settings-daemon/peripherals/keyboard/", + "org.gnome.desktop.peripherals.keyboard", + "/org/gnome/desktop/peripherals/keyboard/", + entries, G_N_ELEMENTS (entries)); +} + GsdKeyboardManager * gsd_keyboard_manager_new (void) { if (manager_object != NULL) { g_object_ref (manager_object); } else { + migrate_keyboard_settings (); manager_object = g_object_new (GSD_TYPE_KEYBOARD_MANAGER, NULL); g_object_add_weak_pointer (manager_object, (gpointer *) &manager_object); -- cgit v1.2.1