Compare commits

...

1 Commits

Author SHA1 Message Date
bensaine caeccac5d6 add: open quit dialog on escape
if no modal, no keyboard capture active, no escapable window active, open quit dialog
3 years ago

@ -2304,16 +2304,16 @@ namespace NLGUI
SModalWndInfo mwi = getModal();
if (mwi.ModalExitKeyPushed)
disableModalWindow();
handled= true;
}
}
// Manage "quit window" If the Key is ESCAPE, no captureKeyboard
if( eventDesc.getKeyEventType() == CEventDescriptorKey::keydown && eventDesc.getKey() == NLMISC::KeyESCAPE )
{
// Get the last escapable active top window. NB: this is ergonomically better.
CInterfaceGroup *win= getLastEscapableTopWindow();
if( win )
if ( win )
{
// Manage "quit window" If the Key is ESCAPE, no captureKeyboard
// Get the last escapable active top window. NB: this is ergonomically better.
// If the window is a modal, must pop it.
if( dynamic_cast<CGroupModal*>(win) )
{
@ -2399,7 +2399,13 @@ namespace NLGUI
}
}
// General case: handle it in the Captured keyboard
if (eventDesc.getKeyEventType() == CEventDescriptorKey::keydown && eventDesc.getKey() == NLMISC::KeyESCAPE && !handled && !isKeyboardCaptured())
{
CAHManager::getInstance()->runActionHandler("enter_modal", NULL, "group=ui:interface:quit_dialog");
handled = true;
}
// General case: handle it in the Captured keyboard
if ( getCaptureKeyboard() != NULL && !handled)
{
bool result = getCaptureKeyboard()->handleEvent(evnt);

Loading…
Cancel
Save