mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-02 09:52:27 -04:00
hotkeys are now universally lowercase
This commit is contained in:
parent
4e64da0311
commit
f946e7b58b
@ -1399,18 +1399,18 @@ int framework_main(int argc, char *argv[]) {
|
||||
event_handler.add_hook("l", event_l);
|
||||
event_handler.add_hook("w", event_w);
|
||||
event_handler.add_hook("b", event_b);
|
||||
event_handler.add_hook("shift-R", event_R);
|
||||
event_handler.add_hook("shift-r", event_R);
|
||||
event_handler.add_hook("`", event_grave);
|
||||
event_handler.add_hook("n", event_n);
|
||||
event_handler.add_hook("c", event_c);
|
||||
event_handler.add_hook("shift-D", event_D);
|
||||
event_handler.add_hook("shift-d", event_D);
|
||||
event_handler.add_hook("g", event_g);
|
||||
event_handler.add_hook("shift-C", event_C);
|
||||
event_handler.add_hook("shift-N", event_N);
|
||||
event_handler.add_hook("shift-S", event_S);
|
||||
event_handler.add_hook("shift-A", event_A);
|
||||
event_handler.add_hook("shift-c", event_C);
|
||||
event_handler.add_hook("shift-n", event_N);
|
||||
event_handler.add_hook("shift-s", event_S);
|
||||
event_handler.add_hook("shift-a", event_A);
|
||||
event_handler.add_hook("p", event_p);
|
||||
event_handler.add_hook("shift-P", event_P);
|
||||
event_handler.add_hook("shift-p", event_P);
|
||||
|
||||
#ifdef USE_IPC
|
||||
event_handler.add_hook("x", event_x);
|
||||
|
@ -1518,18 +1518,18 @@ int framework_main(int argc, char *argv[]) {
|
||||
event_handler.add_hook("l", event_l);
|
||||
event_handler.add_hook("w", event_w);
|
||||
event_handler.add_hook("b", event_b);
|
||||
event_handler.add_hook("shift-R", event_R);
|
||||
event_handler.add_hook("shift-r", event_R);
|
||||
event_handler.add_hook("`", event_grave);
|
||||
event_handler.add_hook("n", event_n);
|
||||
event_handler.add_hook("c", event_c);
|
||||
event_handler.add_hook("shift-D", event_D);
|
||||
event_handler.add_hook("shift-d", event_D);
|
||||
event_handler.add_hook("g", event_g);
|
||||
event_handler.add_hook("shift-C", event_C);
|
||||
event_handler.add_hook("shift-N", event_N);
|
||||
event_handler.add_hook("shift-S", event_S);
|
||||
event_handler.add_hook("shift-A", event_A);
|
||||
event_handler.add_hook("shift-c", event_C);
|
||||
event_handler.add_hook("shift-n", event_N);
|
||||
event_handler.add_hook("shift-s", event_S);
|
||||
event_handler.add_hook("shift-a", event_A);
|
||||
event_handler.add_hook("p", event_p);
|
||||
event_handler.add_hook("shift-P", event_P);
|
||||
event_handler.add_hook("shift-p", event_P);
|
||||
|
||||
#ifdef USE_IPC
|
||||
event_handler.add_hook("x", event_x);
|
||||
|
@ -513,9 +513,9 @@ void demo_keys(EventHandler&) {
|
||||
event_handler.add_hook("shift-f7", event_fkey);
|
||||
event_handler.add_hook("shift-f8", event_fkey);
|
||||
event_handler.add_hook("shift-f9", event_fkey);
|
||||
event_handler.add_hook("shift-B", event_B);
|
||||
event_handler.add_hook("shift-b", event_B);
|
||||
|
||||
event_handler.add_hook("shift-L", event_L);
|
||||
event_handler.add_hook("shift-l", event_L);
|
||||
event_handler.add_hook("k", event_k);
|
||||
event_handler.add_hook("a", event_a);
|
||||
event_handler.add_hook("v", event_v);
|
||||
|
@ -2721,44 +2721,21 @@ lookup_key(WPARAM wparam) const {
|
||||
|
||||
default:
|
||||
int key = MapVirtualKey(wparam, 2);
|
||||
if(isascii(key) && key != 0) {
|
||||
bool bCapsLockDown=((GetKeyState(VK_CAPITAL) & 0x1)!=0);
|
||||
bool bShiftUp = (GetKeyState(VK_SHIFT) >= 0);
|
||||
if(bShiftUp) {
|
||||
if(bCapsLockDown)
|
||||
key = toupper(key);
|
||||
else key = tolower(key);
|
||||
} else {
|
||||
switch(key) {
|
||||
// these keys are unaffected by capslock
|
||||
case '1': key = '!'; break;
|
||||
case '2': key = '@'; break;
|
||||
case '3': key = '#'; break;
|
||||
case '4': key = '$'; break;
|
||||
case '5': key = '%'; break;
|
||||
case '6': key = '^'; break;
|
||||
case '7': key = '&'; break;
|
||||
case '8': key = '*'; break;
|
||||
case '9': key = '('; break;
|
||||
case '0': key = ')'; break;
|
||||
case '-': key = '_'; break;
|
||||
case '=': key = '+'; break;
|
||||
case ',': key = '<'; break;
|
||||
case '.': key = '>'; break;
|
||||
case '/': key = '?'; break;
|
||||
case ';': key = ':'; break;
|
||||
case '\'': key = '"'; break;
|
||||
case '[': key = '{'; break;
|
||||
case ']': key = '}'; break;
|
||||
case '\\': key = '|'; break;
|
||||
case '`': key = '~'; break;
|
||||
default:
|
||||
if(bCapsLockDown)
|
||||
key = tolower(key);
|
||||
else key = toupper(key);
|
||||
}
|
||||
}
|
||||
return KeyboardButton::ascii_key((uchar)key);
|
||||
if (isascii(key) && key != 0) {
|
||||
// We used to try to remap lowercase to uppercase keys
|
||||
// here based on the state of the shift and/or caps lock
|
||||
// keys. But that's a mistake, and doesn't allow for
|
||||
// international or user-defined keyboards; let Windows
|
||||
// do that mapping.
|
||||
|
||||
// Nowadays, we make a distinction between a "button"
|
||||
// and a "keystroke". A button corresponds to a
|
||||
// physical button on the keyboard and has a down and up
|
||||
// event associated. A keystroke may or may not
|
||||
// correspond to a physical button, but will be some
|
||||
// Unicode character and will not have a corresponding
|
||||
// up event.
|
||||
return KeyboardButton::ascii_key(tolower(key));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
@ -1983,43 +1983,20 @@ lookup_key(WPARAM wparam) const {
|
||||
default:
|
||||
int key = MapVirtualKey(wparam, 2);
|
||||
if (isascii(key) && key != 0) {
|
||||
bool bCapsLockDown=((GetKeyState(VK_CAPITAL) & 0x1)!=0);
|
||||
bool bShiftUp = (GetKeyState(VK_SHIFT) >= 0);
|
||||
if (bShiftUp) {
|
||||
if (bCapsLockDown)
|
||||
key = toupper(key);
|
||||
else key = tolower(key);
|
||||
} else {
|
||||
switch(key) {
|
||||
// these keys are unaffected by capslock
|
||||
case '1': key = '!'; break;
|
||||
case '2': key = '@'; break;
|
||||
case '3': key = '#'; break;
|
||||
case '4': key = '$'; break;
|
||||
case '5': key = '%'; break;
|
||||
case '6': key = '^'; break;
|
||||
case '7': key = '&'; break;
|
||||
case '8': key = '*'; break;
|
||||
case '9': key = '('; break;
|
||||
case '0': key = ')'; break;
|
||||
case '-': key = '_'; break;
|
||||
case '=': key = '+'; break;
|
||||
case ',': key = '<'; break;
|
||||
case '.': key = '>'; break;
|
||||
case '/': key = '?'; break;
|
||||
case ';': key = ':'; break;
|
||||
case '\'': key = '"'; break;
|
||||
case '[': key = '{'; break;
|
||||
case ']': key = '}'; break;
|
||||
case '\\': key = '|'; break;
|
||||
case '`': key = '~'; break;
|
||||
default:
|
||||
if (bCapsLockDown)
|
||||
key = tolower(key);
|
||||
else key = toupper(key);
|
||||
}
|
||||
}
|
||||
return KeyboardButton::ascii_key((uchar)key);
|
||||
// We used to try to remap lowercase to uppercase keys
|
||||
// here based on the state of the shift and/or caps lock
|
||||
// keys. But that's a mistake, and doesn't allow for
|
||||
// international or user-defined keyboards; let Windows
|
||||
// do that mapping.
|
||||
|
||||
// Nowadays, we make a distinction between a "button"
|
||||
// and a "keystroke". A button corresponds to a
|
||||
// physical button on the keyboard and has a down and up
|
||||
// event associated. A keystroke may or may not
|
||||
// correspond to a physical button, but will be some
|
||||
// Unicode character and will not have a corresponding
|
||||
// up event.
|
||||
return KeyboardButton::ascii_key(tolower(key));
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user