keyboard: Don't apply "Backspace" straight away
Before, when pressing "Backspace" in the editing dialogue, the keybinding would be changed straight away, *behind* the dialogue, and the dialogue would still be expecting a new shortcut. Instead, we should make it behave like other shortcuts, which means special handling empty shortcuts as valid ones. https://bugzilla.gnome.org/show_bug.cgi?id=769314
This commit is contained in:
parent
69258a91a6
commit
784d8f89de
1 changed files with 5 additions and 3 deletions
|
@ -284,6 +284,8 @@ setup_custom_shortcut (CcKeyboardShortcutEditor *self)
|
||||||
accel_valid = is_valid_binding (self->custom_keyval, self->custom_mask, self->custom_keycode) &&
|
accel_valid = is_valid_binding (self->custom_keyval, self->custom_mask, self->custom_keycode) &&
|
||||||
gtk_accelerator_valid (self->custom_keyval, self->custom_mask) &&
|
gtk_accelerator_valid (self->custom_keyval, self->custom_mask) &&
|
||||||
!self->custom_is_modifier;
|
!self->custom_is_modifier;
|
||||||
|
if (is_empty_binding (self->custom_keyval, self->custom_mask, self->custom_keycode))
|
||||||
|
accel_valid = TRUE;
|
||||||
valid = accel_valid;
|
valid = accel_valid;
|
||||||
|
|
||||||
/* Additional checks for custom shortcuts */
|
/* Additional checks for custom shortcuts */
|
||||||
|
@ -663,13 +665,11 @@ cc_keyboard_shortcut_editor_key_press_event (GtkWidget *widget,
|
||||||
if (!event->is_modifier && real_mask == 0 && event->keyval == GDK_KEY_BackSpace)
|
if (!event->is_modifier && real_mask == 0 && event->keyval == GDK_KEY_BackSpace)
|
||||||
{
|
{
|
||||||
self->edited = TRUE;
|
self->edited = TRUE;
|
||||||
|
self->custom_is_modifier = FALSE;
|
||||||
self->custom_keycode = 0;
|
self->custom_keycode = 0;
|
||||||
self->custom_keyval = 0;
|
self->custom_keyval = 0;
|
||||||
self->custom_mask = 0;
|
self->custom_mask = 0;
|
||||||
|
|
||||||
if (self->item)
|
|
||||||
apply_custom_item_fields (self, self->item);
|
|
||||||
|
|
||||||
gtk_shortcut_label_set_accelerator (GTK_SHORTCUT_LABEL (self->custom_shortcut_accel_label), "");
|
gtk_shortcut_label_set_accelerator (GTK_SHORTCUT_LABEL (self->custom_shortcut_accel_label), "");
|
||||||
gtk_shortcut_label_set_accelerator (GTK_SHORTCUT_LABEL (self->shortcut_accel_label), "");
|
gtk_shortcut_label_set_accelerator (GTK_SHORTCUT_LABEL (self->shortcut_accel_label), "");
|
||||||
|
|
||||||
|
@ -678,6 +678,8 @@ cc_keyboard_shortcut_editor_key_press_event (GtkWidget *widget,
|
||||||
|
|
||||||
self->edited = FALSE;
|
self->edited = FALSE;
|
||||||
|
|
||||||
|
setup_custom_shortcut (self);
|
||||||
|
|
||||||
return GDK_EVENT_STOP;
|
return GDK_EVENT_STOP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue