aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/interface-gtk/interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/interface-gtk/interface.c')
-rw-r--r--src/interface-gtk/interface.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/interface-gtk/interface.c b/src/interface-gtk/interface.c
index 207d01c..9b87abb 100644
--- a/src/interface-gtk/interface.c
+++ b/src/interface-gtk/interface.c
@@ -718,6 +718,7 @@ teco_interface_popup_clear(void)
* @todo It would be great to have platform-specific optimizations,
* so we can detect interruptions without having to drive the Glib
* event loop (e.g. using libX11 or Win32 APIs).
+ * There already is a keyboard hook for Win32 in interface-curses.
* On the downside, such solutions will probably freeze the window
* while SciTECO is busy.
*/
@@ -883,7 +884,11 @@ teco_interface_handle_key_press(guint keyval, guint state, GError **error)
g_unichar_to_utf8(u, &key);
if (key > 0x7F)
break;
- if (state & GDK_CONTROL_MASK)
+ /*
+ * NOTE: Alt-Gr key-combinations are sometimes reported as
+ * Ctrl+Alt, so we filter those out.
+ */
+ if ((state & (GDK_CONTROL_MASK | GDK_MOD1_MASK)) == GDK_CONTROL_MASK)
key = TECO_CTL_KEY(g_ascii_toupper(key));
if (!teco_cmdline_keypress_c(key, error))