]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - keys.c
add a new key dest key_menu_grabbed that behaves like key_menu, but also passes funct...
[xonotic/darkplaces.git] / keys.c
diff --git a/keys.c b/keys.c
index 8faf34f9069652a46bf9db7ada08a2f2a77e4337..dd718225deb8a3d5f646b3efa2e134758656ed19 100644 (file)
--- a/keys.c
+++ b/keys.c
@@ -949,6 +949,7 @@ Key_Event (int key, char ascii, qboolean down)
                                        Key_Message (key, ascii);
                                break;
                        case key_menu:
+                       case key_menu_grabbed:
                                MR_KeyEvent (key, ascii, down);
                                break;
                        case key_game:
@@ -963,7 +964,8 @@ Key_Event (int key, char ascii, qboolean down)
                return;
        }
 
-       // send function keydowns to interpreter no matter what mode is
+       // send function keydowns to interpreter no matter what mode is (unless the menu has specifically grabbed the keyboard, for rebinding keys)
+       if (key_dest != key_menu_grabbed)
        if (key >= K_F1 && key <= K_F12 && down)
        {
                // ignore key repeats on F1-F12 binds
@@ -1022,6 +1024,7 @@ Key_Event (int key, char ascii, qboolean down)
                                Key_Message (key, ascii);
                        break;
                case key_menu:
+               case key_menu_grabbed:
                        MR_KeyEvent (key, ascii, down);
                        break;
                case key_game: