mirror of https://github.com/PCSX2/pcsx2.git
Qt: Fix keyboard SHIFT for non-alpha characters
This commit is contained in:
parent
217e1c8fae
commit
fc715d58f0
|
@ -13,6 +13,53 @@
|
||||||
|
|
||||||
#include <QtGui/QKeyEvent>
|
#include <QtGui/QKeyEvent>
|
||||||
|
|
||||||
|
u8 map_text_to_keycode(const QString& text)
|
||||||
|
{
|
||||||
|
if (text == "!")
|
||||||
|
return Qt::Key_1;
|
||||||
|
if (text == "@")
|
||||||
|
return Qt::Key_2;
|
||||||
|
if (text == "#")
|
||||||
|
return Qt::Key_3;
|
||||||
|
if (text == "$")
|
||||||
|
return Qt::Key_4;
|
||||||
|
if (text == "%")
|
||||||
|
return Qt::Key_5;
|
||||||
|
if (text == "^")
|
||||||
|
return Qt::Key_6;
|
||||||
|
if (text == "&")
|
||||||
|
return Qt::Key_7;
|
||||||
|
if (text == "*")
|
||||||
|
return Qt::Key_8;
|
||||||
|
if (text == "(")
|
||||||
|
return Qt::Key_9;
|
||||||
|
if (text == ")")
|
||||||
|
return Qt::Key_0;
|
||||||
|
if (text == "_")
|
||||||
|
return Qt::Key_Minus;
|
||||||
|
if (text == "+")
|
||||||
|
return Qt::Key_Equal;
|
||||||
|
if (text == "?")
|
||||||
|
return Qt::Key_Slash;
|
||||||
|
if (text == ":")
|
||||||
|
return Qt::Key_Semicolon;
|
||||||
|
if (text == "\"")
|
||||||
|
return Qt::Key_Apostrophe;
|
||||||
|
if (text == "~")
|
||||||
|
return Qt::Key_QuoteLeft;
|
||||||
|
if (text == "<")
|
||||||
|
return Qt::Key_Comma;
|
||||||
|
if (text == ">")
|
||||||
|
return Qt::Key_Period;
|
||||||
|
if (text == "|")
|
||||||
|
return Qt::Key_Backslash;
|
||||||
|
if (text == "{")
|
||||||
|
return Qt::Key_BracketLeft;
|
||||||
|
if (text == "}")
|
||||||
|
return Qt::Key_BracketRight;
|
||||||
|
return 0; // No remapping
|
||||||
|
}
|
||||||
|
|
||||||
struct KeyCodeName
|
struct KeyCodeName
|
||||||
{
|
{
|
||||||
int code;
|
int code;
|
||||||
|
@ -519,7 +566,15 @@ const char* InputManager::ConvertHostKeyboardCodeToIcon(u32 code)
|
||||||
|
|
||||||
u32 QtUtils::KeyEventToCode(const QKeyEvent* ev)
|
u32 QtUtils::KeyEventToCode(const QKeyEvent* ev)
|
||||||
{
|
{
|
||||||
|
const QString text = ev->text();
|
||||||
|
const u8 keycode = map_text_to_keycode(text); // Map special text symbols to keycodes
|
||||||
int key = ev->key();
|
int key = ev->key();
|
||||||
|
|
||||||
|
if (keycode != 0)
|
||||||
|
{
|
||||||
|
key = keycode; // Override key if mapped
|
||||||
|
}
|
||||||
|
|
||||||
Qt::KeyboardModifiers modifiers = ev->modifiers();
|
Qt::KeyboardModifiers modifiers = ev->modifiers();
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
|
|
Loading…
Reference in New Issue