lib: Add missing Sun keyboard keys
This commit is contained in:
parent
bcdeee1f00
commit
0c86f1fbf9
|
@ -0,0 +1 @@
|
||||||
|
Added support for additional keys on Sun Microsystems USB keyboards (https://github.com/debauchee/barrier/issues/784).
|
|
@ -194,6 +194,12 @@ const KeyNameMapEntry kKeyNameMap[] = {
|
||||||
{ "Bar", 0x007c },
|
{ "Bar", 0x007c },
|
||||||
{ "BraceR", 0x007d },
|
{ "BraceR", 0x007d },
|
||||||
{ "Tilde", 0x007e },
|
{ "Tilde", 0x007e },
|
||||||
|
{ "Copy", kKeyCopy },
|
||||||
|
{ "Cut", kKeyCut },
|
||||||
|
{ "Open", kKeyOpen },
|
||||||
|
{ "Paste", kKeyPaste },
|
||||||
|
{ "Props", kKeyProps },
|
||||||
|
{ "Front", kKeyFront },
|
||||||
{ NULL, 0 },
|
{ NULL, 0 },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -236,6 +236,13 @@ static const KeyID kKeySuper_R = 0xEFEC; /* Right super */
|
||||||
static const KeyID kKeyHyper_L = 0xEFED; /* Left hyper */
|
static const KeyID kKeyHyper_L = 0xEFED; /* Left hyper */
|
||||||
static const KeyID kKeyHyper_R = 0xEFEE; /* Right hyper */
|
static const KeyID kKeyHyper_R = 0xEFEE; /* Right hyper */
|
||||||
|
|
||||||
|
static const KeyID kKeyCopy = 0x1008EF57;
|
||||||
|
static const KeyID kKeyCut = 0x1008EF58;
|
||||||
|
static const KeyID kKeyOpen = 0x1008EF6b;
|
||||||
|
static const KeyID kKeyPaste = 0x1008EF6d;
|
||||||
|
static const KeyID kKeyProps = 0x1005EF70;
|
||||||
|
static const KeyID kKeyFront = 0x1005EF71;
|
||||||
|
|
||||||
// multi-key character composition
|
// multi-key character composition
|
||||||
static const KeyID kKeyCompose = 0xEF20;
|
static const KeyID kKeyCompose = 0xEF20;
|
||||||
static const KeyID kKeyDeadGrave = 0x0300;
|
static const KeyID kKeyDeadGrave = 0x0300;
|
||||||
|
|
|
@ -1285,6 +1285,45 @@ static const KeySym s_map1008FF[] =
|
||||||
/* 0xf8 */ 0, 0, 0, 0, 0, 0, 0, 0
|
/* 0xf8 */ 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// map Sun keyboard keys to KeyIDs
|
||||||
|
// This is based on the the "Internet" keymap plus the missing keys
|
||||||
|
// Copy/Cut/Open/Paste/Props/Front
|
||||||
|
static const KeySym s_map1009FF[] =
|
||||||
|
{
|
||||||
|
/* 0x00 */ 0, 0, kKeyBrightnessUp, kKeyBrightnessDown, 0, 0, 0, 0,
|
||||||
|
/* 0x08 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x10 */ 0, kKeyAudioDown, kKeyAudioMute, kKeyAudioUp,
|
||||||
|
/* 0x14 */ kKeyAudioPlay, kKeyAudioStop, kKeyAudioPrev, kKeyAudioNext,
|
||||||
|
/* 0x18 */ kKeyWWWHome, kKeyAppMail, 0, kKeyWWWSearch, 0, 0, 0, 0,
|
||||||
|
/* 0x20 */ 0, 0, 0, 0, 0, 0, kKeyWWWBack, kKeyWWWForward,
|
||||||
|
/* 0x28 */ kKeyWWWStop, kKeyWWWRefresh, 0, 0, kKeyEject, 0, 0, 0,
|
||||||
|
/* 0x30 */ kKeyWWWFavorites, 0, kKeyAppMedia, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x38 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x40 */ kKeyAppUser1, kKeyAppUser2, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x48 */ 0, 0, kKeyMissionControl, kKeyLaunchpad, 0, 0, 0, 0,
|
||||||
|
/* 0x50 */ 0, 0, 0, 0, 0, 0, 0, kKeyCopy,
|
||||||
|
/* 0x58 */ kKeyCut, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x60 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x68 */ 0, 0, 0, kKeyOpen, 0, kKeyPaste, 0, 0,
|
||||||
|
/* 0x70 */ kKeyProps, kKeyFront, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x78 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x80 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x88 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x90 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0x98 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xa0 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xa8 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xb0 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xb8 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xc0 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xc8 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xd0 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xd8 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xe0 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xe8 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xf0 */ 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
/* 0xf8 */ 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
// XWindowsUtil
|
// XWindowsUtil
|
||||||
|
@ -1546,6 +1585,10 @@ XWindowsUtil::mapKeySymToKeyID(KeySym k)
|
||||||
// "Internet" keys
|
// "Internet" keys
|
||||||
return s_map1008FF[k & 0xff];
|
return s_map1008FF[k & 0xff];
|
||||||
|
|
||||||
|
case 0x1009ff00:
|
||||||
|
// Additional Left-side keys provided by Sun Microsystems USB keyboards
|
||||||
|
return s_map1009FF[k & 0xff];
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
// lookup character in table
|
// lookup character in table
|
||||||
KeySymMap::const_iterator index = s_keySymToUCS4.find(k);
|
KeySymMap::const_iterator index = s_keySymToUCS4.find(k);
|
||||||
|
|
Loading…
Reference in New Issue