distinguish left/right Ctrl and Shift

This commit is contained in:
Arisotura
2020-05-19 14:15:11 +02:00
parent 2a7027f794
commit 23cc8c71a2
2 changed files with 36 additions and 7 deletions

View File

@ -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