Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:aaronbockover
gnome-settings-daemon
gsd-speed-gconf-preload.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gsd-speed-gconf-preload.diff of Package gnome-settings-daemon
Index: plugins/xsettings/gsd-xsettings-manager.c =================================================================== --- a/plugins/xsettings/gsd-xsettings-manager.c (revision 580) +++ b/plugins/xsettings/gsd-xsettings-manager.c (revision 581) @@ -782,7 +782,6 @@ const char *path, GConfClientNotifyFunc func) { - gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_NONE, NULL); return gconf_client_notify_add (client, path, func, manager, NULL, NULL); } @@ -859,6 +858,13 @@ client = gconf_client_get_default (); + gconf_client_add_dir (client, MOUSE_SETTINGS_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + gconf_client_add_dir (client, GTK_SETTINGS_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + gconf_client_add_dir (client, INTERFACE_SETTINGS_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + gconf_client_add_dir (client, SOUND_SETTINGS_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + gconf_client_add_dir (client, GTK_MODULES_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + gconf_client_add_dir (client, FONT_RENDER_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + for (i = 0; i < G_N_ELEMENTS (translations); i++) { GConfValue *val; GError *err; Index: plugins/mouse/gsd-mouse-manager.c =================================================================== --- a/plugins/mouse/gsd-mouse-manager.c (revision 580) +++ b/plugins/mouse/gsd-mouse-manager.c (revision 581) @@ -55,12 +55,12 @@ #define GCONF_MOUSE_DIR "/desktop/gnome/peripherals/mouse" #define GCONF_MOUSE_A11Y_DIR "/desktop/gnome/accessibility/mouse" -#define KEY_LEFT_HANDED "/desktop/gnome/peripherals/mouse/left_handed" -#define KEY_MOTION_ACCELERATION "/desktop/gnome/peripherals/mouse/motion_acceleration" -#define KEY_MOTION_THRESHOLD "/desktop/gnome/peripherals/mouse/motion_threshold" -#define KEY_LOCATE_POINTER "/desktop/gnome/peripherals/mouse/locate_pointer" -#define KEY_DWELL_ENABLE "/desktop/gnome/accessibility/mouse/dwell_enable" -#define KEY_DELAY_ENABLE "/desktop/gnome/accessibility/mouse/delay_enable" +#define KEY_LEFT_HANDED GCONF_MOUSE_DIR "/left_handed" +#define KEY_MOTION_ACCELERATION GCONF_MOUSE_DIR "/motion_acceleration" +#define KEY_MOTION_THRESHOLD GCONF_MOUSE_DIR "/motion_threshold" +#define KEY_LOCATE_POINTER GCONF_MOUSE_DIR "/locate_pointer" +#define KEY_DWELL_ENABLE GCONF_MOUSE_A11Y_DIR "/dwell_enable" +#define KEY_DELAY_ENABLE GCONF_MOUSE_A11Y_DIR "/delay_enable" struct GsdMouseManagerPrivate { @@ -684,7 +684,7 @@ const char *path, GConfClientNotifyFunc func) { - gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_NONE, NULL); + gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); return gconf_client_notify_add (client, path, func, manager, NULL, NULL); } Index: plugins/typing-break/gsd-typing-break-manager.c =================================================================== --- a/plugins/typing-break/gsd-typing-break-manager.c (revision 580) +++ b/plugins/typing-break/gsd-typing-break-manager.c (revision 581) @@ -61,16 +61,6 @@ static gpointer manager_object = NULL; -static guint -register_config_callback (GsdTypingBreakManager *manager, - GConfClient *client, - const char *path, - GConfClientNotifyFunc func) -{ - gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_NONE, NULL); - return gconf_client_notify_add (client, path, func, manager, NULL, NULL); -} - static gboolean typing_break_timeout (GsdTypingBreakManager *manager) { @@ -178,13 +168,14 @@ client = gconf_client_get_default (); + gconf_client_add_dir (client, GCONF_BREAK_DIR, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); manager->priv->notify = - register_config_callback (manager, - client, - GCONF_BREAK_DIR, - (GConfClientNotifyFunc) typing_break_callback); + gconf_client_notify_add (client, + GCONF_BREAK_DIR, + (GConfClientNotifyFunc) typing_break_callback, manager, + NULL, NULL); - enabled = gconf_client_get_bool (client, "/desktop/gnome/typing_break/enabled", NULL); + enabled = gconf_client_get_bool (client, GCONF_BREAK_DIR "/enabled", NULL); g_object_unref (client); if (enabled) { manager->priv->setup_id = Index: plugins/xrandr/gsd-xrandr-manager.c =================================================================== --- a/plugins/xrandr/gsd-xrandr-manager.c (revision 580) +++ b/plugins/xrandr/gsd-xrandr-manager.c (revision 581) @@ -708,7 +708,7 @@ g_assert (manager->priv->notify_id == 0); gconf_client_add_dir (manager->priv->client, CONF_DIR, - GCONF_CLIENT_PRELOAD_NONE, + GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); manager->priv->notify_id = Index: plugins/keyboard/gsd-keyboard-manager.c =================================================================== --- a/plugins/keyboard/gsd-keyboard-manager.c (revision 580) +++ b/plugins/keyboard/gsd-keyboard-manager.c (revision 581) @@ -59,16 +59,16 @@ #define GSD_KEYBOARD_KEY "/desktop/gnome/peripherals/keyboard" -#define KEY_REPEAT "/desktop/gnome/peripherals/keyboard/repeat" -#define KEY_CLICK "/desktop/gnome/peripherals/keyboard/click" -#define KEY_RATE "/desktop/gnome/peripherals/keyboard/rate" -#define KEY_DELAY "/desktop/gnome/peripherals/keyboard/delay" -#define KEY_CLICK_VOLUME "/desktop/gnome/peripherals/keyboard/click_volume" +#define KEY_REPEAT GSD_KEYBOARD_KEY "/repeat" +#define KEY_CLICK GSD_KEYBOARD_KEY "/click" +#define KEY_RATE GSD_KEYBOARD_KEY "/rate" +#define KEY_DELAY GSD_KEYBOARD_KEY "/delay" +#define KEY_CLICK_VOLUME GSD_KEYBOARD_KEY "/click_volume" -#define KEY_BELL_VOLUME "/desktop/gnome/peripherals/keyboard/bell_volume" -#define KEY_BELL_PITCH "/desktop/gnome/peripherals/keyboard/bell_pitch" -#define KEY_BELL_DURATION "/desktop/gnome/peripherals/keyboard/bell_duration" -#define KEY_BELL_MODE "/desktop/gnome/peripherals/keyboard/bell_mode" +#define KEY_BELL_VOLUME GSD_KEYBOARD_KEY "/bell_volume" +#define KEY_BELL_PITCH GSD_KEYBOARD_KEY "/bell_pitch" +#define KEY_BELL_DURATION GSD_KEYBOARD_KEY "/bell_duration" +#define KEY_BELL_MODE GSD_KEYBOARD_KEY "/bell_mode" struct GsdKeyboardManagerPrivate { @@ -374,16 +374,6 @@ gdk_error_trap_pop (); } -static guint -register_config_callback (GsdKeyboardManager *manager, - GConfClient *client, - const char *path, - GConfClientNotifyFunc func) -{ - gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_NONE, NULL); - return gconf_client_notify_add (client, path, func, manager, NULL, NULL); -} - gboolean gsd_keyboard_manager_start (GsdKeyboardManager *manager, GError **error) @@ -397,6 +387,8 @@ manager->priv->have_xkb = 0; client = gconf_client_get_default (); + gconf_client_add_dir (client, GSD_KEYBOARD_KEY, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); + /* Essential - xkb initialization should happen before */ gsd_keyboard_xkb_set_post_activation_callback ((PostActivationCallback) gsd_load_modmap_files, NULL); gsd_keyboard_xkb_init (client); @@ -408,10 +400,9 @@ /* apply current settings before we install the callback */ apply_settings (client, 0, NULL, manager); - manager->priv->notify = register_config_callback (manager, - client, - GSD_KEYBOARD_KEY, - (GConfClientNotifyFunc) apply_settings); + manager->priv->notify = gconf_client_notify_add (client, GSD_KEYBOARD_KEY, + (GConfClientNotifyFunc) apply_settings, manager, + NULL, NULL); g_object_unref (client); Index: plugins/keyboard/gsd-keyboard-xkb.c =================================================================== --- a/plugins/keyboard/gsd-keyboard-xkb.c (revision 580) +++ b/plugins/keyboard/gsd-keyboard-xkb.c (revision 581) @@ -338,7 +338,7 @@ const char *path, GConfClientNotifyFunc func) { - gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_NONE, NULL); + gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); return gconf_client_notify_add (client, path, func, NULL, NULL, NULL); } Index: plugins/keybindings/gsd-keybindings-manager.c =================================================================== --- a/plugins/keybindings/gsd-keybindings-manager.c (revision 580) +++ b/plugins/keybindings/gsd-keybindings-manager.c (revision 581) @@ -458,7 +458,7 @@ const char *path, GConfClientNotifyFunc func) { - gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_NONE, NULL); + gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); return gconf_client_notify_add (client, path, func, manager, NULL, NULL); } @@ -477,6 +477,13 @@ g_debug ("Starting keybindings manager"); gnome_settings_profile_start (NULL); + client = gconf_client_get_default (); + + manager->priv->notify = register_config_callback (manager, + client, + GCONF_BINDING_DIR, + (GConfClientNotifyFunc) bindings_callback); + dpy = gdk_display_get_default (); screen_num = gdk_display_get_n_screens (dpy); @@ -487,13 +494,6 @@ manager); } - client = gconf_client_get_default (); - - manager->priv->notify = register_config_callback (manager, - client, - GCONF_BINDING_DIR, - (GConfClientNotifyFunc) bindings_callback); - list = gconf_client_all_dirs (client, GCONF_BINDING_DIR, NULL); manager->priv->screens = get_screens_list (); Index: plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c =================================================================== --- a/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c (revision 580) +++ b/plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c (revision 581) @@ -997,7 +997,7 @@ GConfClientNotifyFunc func, guint *notify) { - gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_NONE, NULL); + gconf_client_add_dir (client, path, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); *notify = gconf_client_notify_add (client, path, func, manager, NULL, NULL); } Index: gnome-settings-daemon/gnome-settings-plugin-info.c =================================================================== --- a/gnome-settings-daemon/gnome-settings-plugin-info.c (revision 580) +++ b/gnome-settings-daemon/gnome-settings-plugin-info.c (revision 581) @@ -312,15 +312,6 @@ gnome_settings_plugin_info_set_enabled_key_name (GnomeSettingsPluginInfo *info, const char *key_name) { - char *dirname; - - dirname = g_path_get_dirname (key_name); - if (dirname != NULL) { - g_debug ("Monitoring dir %s for changes", dirname); - gconf_client_add_dir (info->priv->client, dirname, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - g_free (dirname); - } - info->priv->enabled_notification_id = gconf_client_notify_add (info->priv->client, key_name, (GConfClientNotifyFunc)plugin_enabled_cb, Index: gnome-settings-daemon/gnome-settings-manager.c =================================================================== --- a/gnome-settings-daemon/gnome-settings-manager.c (revision 580) +++ b/gnome-settings-daemon/gnome-settings-manager.c (revision 581) @@ -49,6 +49,7 @@ struct GnomeSettingsManagerPrivate { DBusGConnection *connection; + GConfClient *gconf_client; char *settings_prefix; GSList *plugins; }; @@ -157,7 +158,6 @@ { GnomeSettingsPluginInfo *info; char *key_name; - GConfClient *client; int priority; GError *error; GSList *l; @@ -194,9 +194,8 @@ key_name = g_strdup_printf ("%s/%s/priority", manager->priv->settings_prefix, gnome_settings_plugin_info_get_location (info)); - client = gconf_client_get_default (); error = NULL; - priority = gconf_client_get_int (client, key_name, &error); + priority = gconf_client_get_int (manager->priv->gconf_client, key_name, &error); if (error == NULL) { if (priority > 0) { gnome_settings_plugin_info_set_priority (info, priority); @@ -205,8 +204,7 @@ g_error_free (error); } g_free (key_name); - g_object_unref (client); gnome_settings_profile_end ("setting priority property"); out: if (info != NULL) { @@ -339,6 +337,15 @@ goto out; } + manager->priv->gconf_client = gconf_client_get_default (); + + gnome_settings_profile_start ("preloading gconf keys"); + gconf_client_add_dir (manager->priv->gconf_client, + manager->priv->settings_prefix, + GCONF_CLIENT_PRELOAD_RECURSIVE, + NULL); + gnome_settings_profile_end ("preloading gconf keys"); + _load_all (manager); ret = TRUE; @@ -373,6 +380,12 @@ #endif _unload_all (manager); + + gconf_client_remove_dir (manager->priv->gconf_client, + manager->priv->settings_prefix, + NULL); + g_object_unref (manager->priv->gconf_client); + manager->priv->gconf_client = NULL; } static void 2008-11-03 Behdad Esfahbod <behdad@gnome.org> * gnome-settings-daemon/gnome-settings-manager.c (_load_file), (gnome_settings_manager_start), (gnome_settings_manager_stop): * gnome-settings-daemon/gnome-settings-plugin-info.c (gnome_settings_plugin_info_set_enabled_key_name): * plugins/a11y-keyboard/gsd-a11y-keyboard-manager.c (register_config_callback): * plugins/keybindings/gsd-keybindings-manager.c (register_config_callback), (gsd_keybindings_manager_start): * plugins/keyboard/gsd-keyboard-manager.c (gsd_keyboard_manager_start): * plugins/keyboard/gsd-keyboard-xkb.c (register_config_callback): * plugins/mouse/gsd-mouse-manager.c (register_config_callback): * plugins/typing-break/gsd-typing-break-manager.c (gsd_typing_break_manager_start): * plugins/xrandr/gsd-xrandr-manager.c (gsd_xrandr_manager_start): * plugins/xsettings/gsd-xsettings-manager.c (register_config_callback), (gnome_xsettings_manager_start): Preload gconf dirs when feasible (bug #559167)
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor