fix fullscreen toggle in menu modes

made 'Quit' event configurable
This commit is contained in:
thrust26 2019-05-26 22:20:33 +02:00
parent a9e4531104
commit bb7c3c429c
3 changed files with 50 additions and 72 deletions

View File

@ -148,6 +148,11 @@ void PhysicalKeyboardHandler::setDefaultMapping(Event::Type event, EventMode mod
setDefaultKey(Event::TimeMachineMode , KBDK_T);
setDefaultKey(Event::DebuggerMode , KBDK_GRAVE);
setDefaultKey(Event::LauncherMode , KBDK_ESCAPE);
#ifdef BSPF_MACOS
setDefaultKey(Event::Quit , KBDK_Q, KBDM_ALT);
#else
setDefaultKey(Event::Quit , KBDK_Q, KBDM_CTRL);
#endif
setDefaultKey(Event::VidmodeDecrease , KBDK_MINUS, KBDM_ALT);
setDefaultKey(Event::VidmodeIncrease , KBDK_EQUALS, KBDM_ALT);
@ -202,6 +207,11 @@ void PhysicalKeyboardHandler::setDefaultMapping(Event::Type event, EventMode mod
setDefaultKey(Event::UIPrevDir , KBDK_BACKSPACE);
setDefaultKey(Event::ToggleFullScreen , KBDK_RETURN, KBDM_ALT);
#ifdef BSPF_MACOS
setDefaultKey(Event::Quit , KBDK_Q, KBDM_ALT);
#else
setDefaultKey(Event::Quit , KBDK_Q, KBDM_CTRL);
#endif
// FIXME - use the R77 define in the final release
// use the '1' define for testing
@ -326,6 +336,7 @@ void PhysicalKeyboardHandler::handleEvent(StellaKey key, StellaMod mod, bool pre
if (myHandler.hasOverlay())
myHandler.overlay().handleKeyEvent(key, mod, pressed);
#endif
myHandler.handleEvent(myKeyMap.get(kMenuMode, key, mod), pressed);
break;
}
}
@ -338,19 +349,6 @@ bool PhysicalKeyboardHandler::handleAltEvent(StellaKey key, StellaMod mod, bool
if(StellaModTest::isAlt(mod) && pressed)
{
EventHandlerState estate = myHandler.state();
#ifdef BSPF_MACOS
// These keys work in all states
if(key == KBDK_Q)
{
myHandler.handleEvent(Event::Quit);
}
else
#endif
if (key == KBDK_RETURN)
{
int i = 0;
}
if(key == KBDK_TAB)
{
@ -358,8 +356,9 @@ bool PhysicalKeyboardHandler::handleAltEvent(StellaKey key, StellaMod mod, bool
myAltKeyCounter = 1;
return true;
}
// State rewinding must work in pause mode too
else if(estate == EventHandlerState::EMULATION || estate == EventHandlerState::PAUSE)
if(estate == EventHandlerState::EMULATION || estate == EventHandlerState::PAUSE)
{
switch(key)
{
@ -492,13 +491,8 @@ bool PhysicalKeyboardHandler::handleControlEvent(StellaKey key, StellaMod mod, b
if(StellaModTest::isControl(mod) && pressed && myUseCtrlKeyFlag)
{
EventHandlerState estate = myHandler.state();
// These keys work in all states
if(key == KBDK_Q)
{
myHandler.handleEvent(Event::Quit);
}
// These only work when in emulation mode
else if(estate == EventHandlerState::EMULATION || estate == EventHandlerState::PAUSE)
if(estate == EventHandlerState::EMULATION || estate == EventHandlerState::PAUSE)
{
switch(key)
{

View File

@ -820,24 +820,6 @@ void EventHandler::setActionMappings(EventMode mode)
}
#endif
// There are some keys which are hardcoded. These should be represented too.
string prepend = "";
string modifier;
#ifndef BSPF_MACOS
modifier = "Ctrl";
#else
modifier = "Cmd";
#endif
if(event == Event::Quit)
prepend = modifier + "+Q (*)";
// else if ...
if(key == "")
key = prepend;
else if(prepend != "")
key = prepend + ", " + key;
if(key != "")
list[i].key = key;
}
@ -1511,5 +1493,7 @@ EventHandler::ActionList EventHandler::ourMenuActionList[MENU_ACTIONLIST_SIZE] =
{ Event::UITabPrev, "Previous tab", "", false },
{ Event::UITabNext, "Next tab", "", false },
{ Event::UIPrevDir, "Parent directory", "", false }
{ Event::UIPrevDir, "Parent directory", "", false },
{ Event::ToggleFullScreen, "Toggle fullscreen", "", false },
{ Event::Quit, "Quit", "", false }
};

View File

@ -368,7 +368,7 @@ class EventHandler
COMBO_SIZE = 16,
EVENTS_PER_COMBO = 8,
EMUL_ACTIONLIST_SIZE = 98 + COMBO_SIZE,
MENU_ACTIONLIST_SIZE = 16
MENU_ACTIONLIST_SIZE = 18
;
/**