Don't allow shortcuts with Ctrl+Alt because on Windows they can be used as the AltGr...
[xonotic/darkplaces.git] / keys.c
diff --git a/keys.c b/keys.c
index 2f91c06..d13c25d 100644 (file)
--- a/keys.c
+++ b/keys.c
@@ -726,6 +726,11 @@ Key_Console (int key, int unicode)
                break;
        }
 
+       // Don't allow shortcuts with Ctrl+Alt because on Windows they can be used
+       // as the AltGr key (which generates Ctrl+Alt) to type special characters
+       if (keydown[K_CTRL] && keydown[K_ALT])
+               goto add_char;
+
        if ((key == 'v' && keydown[K_CTRL]) || ((key == K_INS || key == K_KP_INS) && keydown[K_SHIFT]))
        {
                char *cbd, *p;
@@ -1154,6 +1159,8 @@ Key_Console (int key, int unicode)
                return;
        }
 
+       add_char:
+
        // non printable
        if (unicode < 32)
                return;
@@ -1626,6 +1633,7 @@ Key_Init (void)
        Cmd_AddCommand ("in_unbind", Key_In_Unbind_f, "removes command on the specified key in the selected bindmap");
        Cmd_AddCommand ("in_bindlist", Key_In_BindList_f, "bindlist: displays bound keys for all bindmaps, or the given bindmap");
        Cmd_AddCommand ("in_bindmap", Key_In_Bindmap_f, "selects active foreground and background (used only if a key is not bound in the foreground) bindmaps for typing");
+       Cmd_AddCommand ("in_releaseall", Key_ReleaseAll, "releases all currently pressed keys (debug command)");
 
        Cmd_AddCommand ("bind", Key_Bind_f, "binds a command to the specified key in bindmap 0");
        Cmd_AddCommand ("unbind", Key_Unbind_f, "removes a command on the specified key in bindmap 0");