summaryrefslogtreecommitdiff
path: root/panels/keyboard/cc-keyboard-item.c
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2011-02-17 16:50:32 +0000
committerBastien Nocera <hadess@hadess.net>2011-02-17 16:52:07 +0000
commit52f8687c37a7097c8f8f4fe170487bdd651b4c3a (patch)
tree96ffd858806ef1e031293f82033b7c52068516a8 /panels/keyboard/cc-keyboard-item.c
parent9d1869aaaefabcd6f33a104a485437323d6630a6 (diff)
downloadgnome-control-center-52f8687c37a7097c8f8f4fe170487bdd651b4c3a.tar.gz
keyboard: Only listen to our own key
Rather than all the possible changes that could have happened in the schemas.
Diffstat (limited to 'panels/keyboard/cc-keyboard-item.c')
-rw-r--r--panels/keyboard/cc-keyboard-item.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/panels/keyboard/cc-keyboard-item.c b/panels/keyboard/cc-keyboard-item.c
index 73c8b7008..0ba7138c0 100644
--- a/panels/keyboard/cc-keyboard-item.c
+++ b/panels/keyboard/cc-keyboard-item.c
@@ -535,6 +535,8 @@ cc_keyboard_item_load_from_gsettings (CcKeyboardItem *item,
const char *schema,
const char *key)
{
+ char *signal_name;
+
item->schema = g_strdup (schema);
item->key = g_strdup (key);
item->description = g_strdup (description);
@@ -544,8 +546,10 @@ cc_keyboard_item_load_from_gsettings (CcKeyboardItem *item,
item->editable = g_settings_is_writable (item->settings, item->key);
binding_from_string (item->binding, &item->keyval, &item->keycode, &item->mask);
- g_signal_connect (G_OBJECT (item->settings), "changed",
+ signal_name = g_strdup_printf ("changed::%s", item->key);
+ g_signal_connect (G_OBJECT (item->settings), signal_name,
G_CALLBACK (binding_changed), item);
+ g_free (signal_name);
return TRUE;
}