keyboard: avoid stray Meta modified
While using the Keyboard shortcut editor dialog under Wayland, the user receives a <Meta> key even when this key isn't present in the physical keyboard nor in the keymap. This is probably the result of Wayland inheriting from X's xkb. To work around that, simply filter out this modifier. https://bugzilla.gnome.org/show_bug.cgi?id=769063
This commit is contained in:
parent
a0a155884e
commit
70bba2bbcd
1 changed files with 6 additions and 1 deletions
|
@ -24,6 +24,11 @@
|
|||
#include "cc-keyboard-shortcut-editor.h"
|
||||
#include "keyboard-shortcuts.h"
|
||||
|
||||
/*
|
||||
* Workaround to stop receiving a stray Meta modifier.
|
||||
*/
|
||||
#define ALL_ACCELS_MASK (GDK_CONTROL_MASK | GDK_SHIFT_MASK | GDK_MOD1_MASK)
|
||||
|
||||
struct _CcKeyboardShortcutEditor
|
||||
{
|
||||
GtkDialog parent;
|
||||
|
@ -450,7 +455,7 @@ cc_keyboard_shortcut_editor_key_press_event (GtkWidget *widget,
|
|||
if (!editing)
|
||||
return GTK_WIDGET_CLASS (cc_keyboard_shortcut_editor_parent_class)->key_press_event (widget, event);
|
||||
|
||||
real_mask = event->state & gtk_accelerator_get_default_mod_mask ();
|
||||
real_mask = event->state & gtk_accelerator_get_default_mod_mask () & ALL_ACCELS_MASK;
|
||||
|
||||
/* A single Escape press cancels the editing */
|
||||
if (!event->is_modifier && real_mask == 0 && event->keyval == GDK_KEY_Escape)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue