diff --git a/reaction/code/ui/ui_main.c b/reaction/code/ui/ui_main.c index 6ea21d81..e3ece64e 100644 --- a/reaction/code/ui/ui_main.c +++ b/reaction/code/ui/ui_main.c @@ -8777,11 +8777,7 @@ void _UI_KeyEvent(int key, qboolean down) menuDef_t *menu = Menu_GetFocused(); if (menu) { - if (key == K_ESCAPE && down && !Menus_AnyFullScreenVisible()) { - Menus_CloseAll(); - } else { - Menu_HandleKey(menu, key, down); - } + Menu_HandleKey(menu, key, down); } else { trap_Key_SetCatcher(trap_Key_GetCatcher() & ~KEYCATCH_UI); trap_Key_ClearStates(); diff --git a/reaction/code/ui/ui_shared.c b/reaction/code/ui/ui_shared.c index 6011ec1d..d2c108aa 100644 --- a/reaction/code/ui/ui_shared.c +++ b/reaction/code/ui/ui_shared.c @@ -4230,11 +4230,15 @@ void Menu_HandleKey(menuDef_t * menu, int key, qboolean down) break; case K_ESCAPE: - if (!g_waitingForKey && menu->onESC) { - itemDef_t it; + if (!g_waitingForKey) { + if (menu->onESC) { + itemDef_t it; - it.parent = menu; - Item_RunScript(&it, menu->onESC); + it.parent = menu; + Item_RunScript(&it, menu->onESC); + } else if (openMenuCount > 0) { + Menus_Close(menuStack[openMenuCount]); + } } break; case K_TAB: