Ticket #9153: bug_2978736_commonevent.patch

File bug_2978736_commonevent.patch, 2.1 KB (added by Pidgeot, 14 years ago)

Move modifier checking into isScalerHotkey

  • backends/platform/sdl/events.cpp

     
    339339        if (_scrollLock)
    340340                event.kbd.flags |= Common::KBD_SCRL;
    341341
    342         if ((event.kbd.flags & (Common::KBD_CTRL|Common::KBD_ALT)) == (Common::KBD_CTRL|Common::KBD_ALT)) {
     342        if (isScalerHotkey(event))
    343343                // Swallow these key up events
    344344                return false;
    345         }
    346345
    347346        return true;
    348347}
  • backends/platform/sdl/graphics.cpp

     
    20022002                return false;
    20032003        }
    20042004}
     2005
     2006bool OSystem_SDL::isScalerHotkey(const Common::Event &event) {
     2007        if ((event.kbd.flags & (Common::KBD_CTRL|Common::KBD_ALT)) == (Common::KBD_CTRL|Common::KBD_ALT)) {
     2008                const bool isNormalNumber = (Common::KEYCODE_1 <= event.kbd.keycode && event.kbd.keycode <= Common::KEYCODE_9);
     2009                const bool isKeypadNumber = (Common::KEYCODE_KP1 <= event.kbd.keycode && event.kbd.keycode <= Common::KEYCODE_KP9);
     2010                const bool isScaleKey = (event.kbd.keycode == Common::KEYCODE_EQUALS || event.kbd.keycode == Common::KEYCODE_PLUS || event.kbd.keycode == Common::KEYCODE_MINUS ||
     2011                        event.kbd.keycode == Common::KEYCODE_KP_PLUS || event.kbd.keycode == Common::KEYCODE_KP_MINUS);
     2012
     2013                if (isNormalNumber || isKeypadNumber) {
     2014                        int keyValue = event.kbd.keycode - (isNormalNumber ? Common::KEYCODE_1 : Common::KEYCODE_KP1);
     2015                        if (keyValue >= ARRAYSIZE(s_gfxModeSwitchTable))
     2016                                return false;
     2017                }
     2018                return (isScaleKey || event.kbd.keycode == 'a');
     2019        }
     2020        return false;
     2021}
  • backends/platform/sdl/sdl.h

     
    490490        virtual bool remapKey(SDL_Event &ev, Common::Event &event);
    491491
    492492        bool handleScalerHotkeys(const SDL_KeyboardEvent &key);
     493        bool isScalerHotkey(const Common::Event &event);
    493494};
    494495
    495496#endif