OS X: Add scan code mappings for Escape, Return and function keys.

In OS X, certain keyboard layouts (such as Japanese) do not produce
unicode character conversions for Escape and other keys. In these cases
the code uses a fallback scan code check to map the key. The scan code
mapping had the function keys, but there are several other important
keys it can map.

Task-number: QTBUG-41090
Change-Id: I624793c9bb28ae8c98b54539c277943905cac7e2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
bb10
Dyami Caliri 2014-09-16 11:31:03 -07:00
parent d0be032e5c
commit 82dbea55a7
1 changed files with 26 additions and 16 deletions

View File

@ -213,22 +213,32 @@ static qt_mac_enum_mapper qt_mac_keyboard_symbols[] = {
};
static qt_mac_enum_mapper qt_mac_keyvkey_symbols[] = { //real scan codes
{ 122, QT_MAC_MAP_ENUM(Qt::Key_F1) },
{ 120, QT_MAC_MAP_ENUM(Qt::Key_F2) },
{ 99, QT_MAC_MAP_ENUM(Qt::Key_F3) },
{ 118, QT_MAC_MAP_ENUM(Qt::Key_F4) },
{ 96, QT_MAC_MAP_ENUM(Qt::Key_F5) },
{ 97, QT_MAC_MAP_ENUM(Qt::Key_F6) },
{ 98, QT_MAC_MAP_ENUM(Qt::Key_F7) },
{ 100, QT_MAC_MAP_ENUM(Qt::Key_F8) },
{ 101, QT_MAC_MAP_ENUM(Qt::Key_F9) },
{ 109, QT_MAC_MAP_ENUM(Qt::Key_F10) },
{ 103, QT_MAC_MAP_ENUM(Qt::Key_F11) },
{ 111, QT_MAC_MAP_ENUM(Qt::Key_F12) },
{ 105, QT_MAC_MAP_ENUM(Qt::Key_F13) },
{ 107, QT_MAC_MAP_ENUM(Qt::Key_F14) },
{ 113, QT_MAC_MAP_ENUM(Qt::Key_F15) },
{ 106, QT_MAC_MAP_ENUM(Qt::Key_F16) },
{ kVK_F1, QT_MAC_MAP_ENUM(Qt::Key_F1) },
{ kVK_F2, QT_MAC_MAP_ENUM(Qt::Key_F2) },
{ kVK_F3, QT_MAC_MAP_ENUM(Qt::Key_F3) },
{ kVK_F4, QT_MAC_MAP_ENUM(Qt::Key_F4) },
{ kVK_F5, QT_MAC_MAP_ENUM(Qt::Key_F5) },
{ kVK_F6, QT_MAC_MAP_ENUM(Qt::Key_F6) },
{ kVK_F7, QT_MAC_MAP_ENUM(Qt::Key_F7) },
{ kVK_F8, QT_MAC_MAP_ENUM(Qt::Key_F8) },
{ kVK_F9, QT_MAC_MAP_ENUM(Qt::Key_F9) },
{ kVK_F10, QT_MAC_MAP_ENUM(Qt::Key_F10) },
{ kVK_F11, QT_MAC_MAP_ENUM(Qt::Key_F11) },
{ kVK_F12, QT_MAC_MAP_ENUM(Qt::Key_F12) },
{ kVK_F13, QT_MAC_MAP_ENUM(Qt::Key_F13) },
{ kVK_F14, QT_MAC_MAP_ENUM(Qt::Key_F14) },
{ kVK_F15, QT_MAC_MAP_ENUM(Qt::Key_F15) },
{ kVK_F16, QT_MAC_MAP_ENUM(Qt::Key_F16) },
{ kVK_Return, QT_MAC_MAP_ENUM(Qt::Key_Return) },
{ kVK_Tab, QT_MAC_MAP_ENUM(Qt::Key_Tab) },
{ kVK_Escape, QT_MAC_MAP_ENUM(Qt::Key_Escape) },
{ kVK_Help, QT_MAC_MAP_ENUM(Qt::Key_Help) },
{ kVK_UpArrow, QT_MAC_MAP_ENUM(Qt::Key_Up) },
{ kVK_DownArrow, QT_MAC_MAP_ENUM(Qt::Key_Down) },
{ kVK_LeftArrow, QT_MAC_MAP_ENUM(Qt::Key_Left) },
{ kVK_RightArrow, QT_MAC_MAP_ENUM(Qt::Key_Right) },
{ kVK_PageUp, QT_MAC_MAP_ENUM(Qt::Key_PageUp) },
{ kVK_PageDown, QT_MAC_MAP_ENUM(Qt::Key_PageDown) },
{ 0, QT_MAC_MAP_ENUM(0) }
};