bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#53200: 29.0.50; C-S-u shortcut fails with 'PGTK' enable


From: Morgan Smith
Subject: bug#53200: 29.0.50; C-S-u shortcut fails with 'PGTK' enable
Date: Sun, 22 May 2022 13:44:54 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)

Hello,

daanturo <daanturo@gmail.com> writes:
Emacs is unable to recognize any Super-modified keys.

My bad, I gave the wrong git hash. I meant this hash: 1c1ae6ba80. If you want to re-enable super modified keys you have to make the following change. If I remember correctly Po Lu thinks this is a bug in some other software and that the GDK_SUPER_MASK bit should be set so they don't want to add the GDK_MOD4_MASK bit. Personally, I think GDK_MOD4_MASK should be added and we should just add a todo comment to look into it more later.

I suppose the thought is that in theory someone could use MOD4 as a custom modifier instead of using it as super but realistically I think someone trying to do that would have lots of problems. It would be cool if that was possible though so I do support trying to rid ourselves of odd grandfathered in quirks.


diff --git a/src/pgtkterm.c b/src/pgtkterm.c index b9d0b7b512..3ef643a075 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -5018,7 +5018,7 @@ pgtk_gtk_to_emacs_modifiers (struct pgtk_display_info *dpyinfo, int state) mod |= mod_ctrl; if (state & GDK_META_MASK || state & GDK_MOD1_MASK) mod |= mod_meta; - if (state & GDK_SUPER_MASK) + if (state & GDK_SUPER_MASK || state & GDK_MOD4_MASK) mod |= mod_super; if (state & GDK_HYPER_MASK) mod |= mod_hyper; @@ -5151,7 +5151,8 @@ key_press_event (GtkWidget *widget, GdkEvent *event, gpointer *user_data) /* While super is pressed, the input method will always always resend the key events ignoring super. As a workaround, don't filter key events with super or hyper pressed. */ - if (!(event->key.state & (GDK_SUPER_MASK | GDK_HYPER_MASK))) + if (!(event->key.state & + (GDK_SUPER_MASK | GDK_MOD4_MASK | GDK_HYPER_MASK))) { if (pgtk_im_filter_keypress (f, &event->key)) return TRUE;







reply via email to

[Prev in Thread] Current Thread [Next in Thread]