summaryrefslogtreecommitdiff
path: root/gnome-settings-daemon/gnome-settings-keyboard-xkb.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnome-settings-daemon/gnome-settings-keyboard-xkb.c')
-rw-r--r--gnome-settings-daemon/gnome-settings-keyboard-xkb.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/gnome-settings-daemon/gnome-settings-keyboard-xkb.c b/gnome-settings-daemon/gnome-settings-keyboard-xkb.c
index bd7336d7b..79b2039f9 100644
--- a/gnome-settings-daemon/gnome-settings-keyboard-xkb.c
+++ b/gnome-settings-daemon/gnome-settings-keyboard-xkb.c
@@ -147,6 +147,7 @@ gnome_settings_keyboard_xkb_analyze_sysconfig (void)
{
GConfClient *confClient;
GSwitchItXkbConfig gswicWas, *pgswicNow;
+ gboolean isConfigChanged;
if (!initedOk)
return;
@@ -158,9 +159,10 @@ gnome_settings_keyboard_xkb_analyze_sysconfig (void)
GSwitchItXkbConfigLoadSysBackup (&gswicWas);
GSwitchItXkbConfigLoadInitial (pgswicNow);
+ isConfigChanged = g_slist_length (gswicWas.layouts) &&
+ !GSwitchItXkbConfigEquals (pgswicNow, &gswicWas);
/* config was changed!!! */
- if (g_slist_length (gswicWas.layouts) &&
- !GSwitchItXkbConfigEquals (pgswicNow, &gswicWas)) {
+ if (isConfigChanged) {
GtkWidget *msg = gtk_message_dialog_new_with_markup (NULL,
0,
GTK_MESSAGE_INFO,
@@ -183,6 +185,8 @@ gnome_settings_keyboard_xkb_analyze_sysconfig (void)
gtk_widget_show (msg);
}
GSwitchItXkbConfigSaveSysBackup (pgswicNow);
+ if (!isConfigChanged)
+ g_free (pgswicNow);
GSwitchItXkbConfigTerm (&gswicWas);
}