feat(menu): ESC tanca el joc també amb el menú obert

This commit is contained in:
JailDesigner committed 2026-05-14 10:21:33 +02:00
1 parent b6403e8de5
commit 4daeb0e15c
2 files changed
+13 -10

No files matched your search

+9 -7
View File
@@ -661,7 +661,6 @@ auto ServiceMenu::handleEvent(const SDL_Event& ev) -> bool {
playAcceptSound();
break;
case SDL_SCANCODE_BACKSPACE:
case SDL_SCANCODE_ESCAPE:
popPage();
playSelectSound();
break;
@@ -669,13 +668,16 @@ auto ServiceMenu::handleEvent(const SDL_Event& ev) -> bool {
break;
}
// Context d'entrada exclusiu: amb el menú obert, el teclat va al menú
// i les escenes no veuen res. Les F-keys (F1–F12) són hotkeys d'UI
// omnipresents (zoom, shader, screenshot, render info, menu_toggle…)
// i passen avall a GlobalInputs. Tota la resta queda absorbida —
// inclús tecles que el menú no fa servir — perquè una J en LogoScene
// no salti la secció mentre l'usuari està al menú.
// i les escenes no veuen res. Les F-keys (F1–F12) i ESC són hotkeys
// d'UI omnipresents (zoom, shader, screenshot, render info,
// menu_toggle, exit) i passen avall a GlobalInputs perquè es
// comporten igual amb el menú obert o tancat. La navegació enrere
// dins del menú queda exclusivament a BACKSPACE. Tota la resta queda
// absorbida — inclús tecles que el menú no fa servir — perquè una J
// en LogoScene no salti la secció mentre l'usuari està al menú.
const bool IS_FUNCTION_KEY = SC >= SDL_SCANCODE_F1 && SC <= SDL_SCANCODE_F12;
return !IS_FUNCTION_KEY;
const bool IS_PASSTHROUGH = IS_FUNCTION_KEY || SC == SDL_SCANCODE_ESCAPE;
return !IS_PASSTHROUGH;
}
// --- Builders de pàgines ---