diff options
| author | Yuuki Harano | 2020-09-22 00:14:34 +0900 |
|---|---|---|
| committer | Jeff Walsh | 2020-11-24 12:24:40 +1100 |
| commit | 7c8da336138eb799bcba8583cb18fc8b3cfe7347 (patch) | |
| tree | b3da19324195c1c50a988341634ddf70e3473442 | |
| parent | 28073ba59bbabec1194977d654b471800ce63f45 (diff) | |
| download | emacs-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.c | 10 |
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 | ||
| 5468 | void | 5474 | void |
| 5469 | pgtk_enqueue_string (struct frame *f, gchar * str) | 5475 | pgtk_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 |