diff options
Diffstat (limited to 'src/frontend/qt_sdl/main.h')
-rw-r--r-- | src/frontend/qt_sdl/main.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/frontend/qt_sdl/main.h b/src/frontend/qt_sdl/main.h index 4553875..5d6638c 100644 --- a/src/frontend/qt_sdl/main.h +++ b/src/frontend/qt_sdl/main.h @@ -23,6 +23,7 @@ #include <QWidget> #include <QMainWindow> #include <QImage> +#include <QKeyEvent> class EmuThread : public QThread @@ -131,4 +132,24 @@ private: QAction* actInputConfig; }; + +// TODO: MacOS version of this! +// distinguish between left and right modifier keys (Ctrl, Alt, Shift) +// Qt provides no real cross-platform way to do this, so here we go +// for Windows and Linux we can distinguish via scancodes (but both +// provide different scancodes) +#ifdef __WIN32__ +inline bool IsRightModKey(QKeyEvent* event) +{ + quint32 scan = event->nativeScanCode(); + return (scan == 0x11D || scan == 0x138 || scan == 0x36); +} +#else +inline bool IsRightModKey(QKeyEvent* event) +{ + quint32 scan = event->nativeScanCode(); + return (scan == 0x69 || scan == 0x6C || scan == 0x3E); +} +#endif + #endif // MAIN_H |