aboutsummaryrefslogtreecommitdiff
path: root/src/frontend/qt_sdl/main.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/qt_sdl/main.h')
-rw-r--r--src/frontend/qt_sdl/main.h21
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