fix(notifier): ESC només confirma sobre el propi prompt de sortida
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user