diff options
Diffstat (limited to 'panels/keyboard/cc-keyboard-shortcut-row.c')
-rw-r--r-- | panels/keyboard/cc-keyboard-shortcut-row.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/panels/keyboard/cc-keyboard-shortcut-row.c b/panels/keyboard/cc-keyboard-shortcut-row.c index c6e2c247f..2a12b799a 100644 --- a/panels/keyboard/cc-keyboard-shortcut-row.c +++ b/panels/keyboard/cc-keyboard-shortcut-row.c @@ -64,6 +64,16 @@ cc_keyboard_shortcut_row_init (CcKeyboardShortcutRow *self) gtk_widget_init_template (GTK_WIDGET (self)); } +static void +cc_kbd_shortcut_is_default_changed_cb (CcKeyboardShortcutRow *self) +{ + /* Embolden the label when the shortcut is modified */ + if (cc_keyboard_item_is_value_default (self->item)) + gtk_widget_remove_css_class (GTK_WIDGET (self->accelerator_label), "heading"); + else + gtk_widget_add_css_class (GTK_WIDGET (self->accelerator_label), "heading"); +} + static gboolean transform_binding_to_accel (GBinding *binding, const GValue *from_value, @@ -76,21 +86,7 @@ transform_binding_to_accel (GBinding *binding, item = CC_KEYBOARD_ITEM (g_binding_dup_source (binding)); combo = cc_keyboard_item_get_primary_combo (item); - accelerator = convert_keysym_state_to_string (&combo); - /* Embolden the label when the shortcut is modified */ - if (!cc_keyboard_item_is_value_default (item)) - { - g_autofree gchar *tmp = NULL; - - tmp = convert_keysym_state_to_string (&combo); - - accelerator = g_strdup_printf ("<b>%s</b>", tmp); - } - else - { - accelerator = convert_keysym_state_to_string (&combo); - } g_value_take_string (to_value, accelerator); @@ -124,6 +120,11 @@ cc_keyboard_shortcut_row_new (CcKeyboardItem *item, transform_binding_to_accel, NULL, NULL, NULL); + g_signal_connect_object (item, "notify::is-value-default", + G_CALLBACK (cc_kbd_shortcut_is_default_changed_cb), + self, G_CONNECT_SWAPPED); + cc_kbd_shortcut_is_default_changed_cb (self); + gtk_size_group_add_widget(size_group, GTK_WIDGET (self->accelerator_label)); |