aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYuuki Harano2020-09-22 00:14:34 +0900
committerJeff Walsh2020-11-24 12:24:40 +1100
commit7c8da336138eb799bcba8583cb18fc8b3cfe7347 (patch)
treeb3da19324195c1c50a988341634ddf70e3473442
parent28073ba59bbabec1194977d654b471800ce63f45 (diff)
downloademacs-7c8da336138eb799bcba8583cb18fc8b3cfe7347.tar.gz
emacs-7c8da336138eb799bcba8583cb18fc8b3cfe7347.zip
Exclude Xlib's modifier keys
* src/pgtkterm.c (IsModifierKey): New macro. (key_press_event): Exclude Xlib's modifier keys.
-rw-r--r--src/pgtkterm.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/pgtkterm.c b/src/pgtkterm.c
index d62e2a3b16d..224c01551b7 100644
--- a/src/pgtkterm.c
+++ b/src/pgtkterm.c
@@ -5464,6 +5464,12 @@ pgtk_emacs_to_gtk_modifiers (struct pgtk_display_info *dpyinfo, int state)
5464#define IsMiscFunctionKey(keysym) (0xff60 <= (keysym) && (keysym) < 0xff6c) 5464#define IsMiscFunctionKey(keysym) (0xff60 <= (keysym) && (keysym) < 0xff6c)
5465#define IsKeypadKey(keysym) (0xff80 <= (keysym) && (keysym) < 0xffbe) 5465#define IsKeypadKey(keysym) (0xff80 <= (keysym) && (keysym) < 0xffbe)
5466#define IsFunctionKey(keysym) (0xffbe <= (keysym) && (keysym) < 0xffe1) 5466#define IsFunctionKey(keysym) (0xffbe <= (keysym) && (keysym) < 0xffe1)
5467#define IsModifierKey(keysym) \
5468 ((((keysym) >= GDK_KEY_Shift_L) && ((keysym) <= GDK_KEY_Hyper_R)) \
5469 || (((keysym) >= GDK_KEY_ISO_Lock) && ((keysym) <= GDK_KEY_ISO_Level5_Lock)) \
5470 || ((keysym) == GDK_KEY_Mode_switch) \
5471 || ((keysym) == GDK_KEY_Num_Lock))
5472
5467 5473
5468void 5474void
5469pgtk_enqueue_string (struct frame *f, gchar * str) 5475pgtk_enqueue_string (struct frame *f, gchar * str)
@@ -5680,6 +5686,10 @@ key_press_event (GtkWidget * widget, GdkEvent * event, gpointer * user_data)
5680 || (orig_keysym & (1 << 28)) 5686 || (orig_keysym & (1 << 28))
5681 || (keysym != GDK_KEY_VoidSymbol && nbytes == 0)) 5687 || (keysym != GDK_KEY_VoidSymbol && nbytes == 0))
5682 && !(event->key.is_modifier 5688 && !(event->key.is_modifier
5689 /* Gtk's modifier keys are different from Xlib's ones.
5690 * I need to exclude them.
5691 */
5692 || IsModifierKey (orig_keysym)
5683 /* The symbols from GDK_KEY_ISO_Lock 5693 /* The symbols from GDK_KEY_ISO_Lock
5684 to GDK_KEY_ISO_Last_Group_Lock 5694 to GDK_KEY_ISO_Last_Group_Lock
5685 don't have real modifiers but 5695 don't have real modifiers but