fix(notifier): ESC només confirma sobre el propi prompt de sortida

This commit is contained in:
2026-05-21 08:24:22 +02:00
parent 9a79fb9774
commit 4252f3327f
3 changed files with 24 additions and 10 deletions
+7 -7
View File
@@ -60,18 +60,18 @@ namespace GlobalEvents {
case SDL_SCANCODE_ESCAPE: {
// Doble pulsació per confirmar sortida: la primera ESC
// dispara un toast d'avís; mentre el toast està entrant
// o aguantant (isActiveWindow), la segona ESC tanca el
// joc. Si el toast ha començat a sortir o ja ha
// desaparegut, ESC torna a obrir la finestra de
// confirmació sense tancar.
// dispara un toast d'avís; només si aquest toast concret
// (isExitPromptActive) segueix visible, la segona ESC
// tanca el joc. Si la notificació activa és una altra
// (zoom, fullscreen, vsync...), ESC obre el prompt de
// sortida en lloc de tancar.
auto* notifier = System::Notifier::get();
if (notifier != nullptr && !notifier->isActiveWindow()) {
if (notifier != nullptr && !notifier->isExitPromptActive()) {
notifier->notifyExit("PREMEU ESC UN ALTRE COP PER EIXIR");
return true;
}
// Notifier inexistent (degradació elegant) o segona ESC
// dins la finestra activa: tanquem el joc.
// sobre el prompt de sortida: tanquem el joc.
context.setNextScene(SceneType::EXIT);
SceneManager::actual = SceneType::EXIT;
return true;