mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-04-10 07:38:06 -05:00
Oops - Shift-PgUp/PgDn conflicted with NetHack mode
[originally from svn r285]
This commit is contained in:
parent
f6c63320ea
commit
edf8b22b98
42
window.c
42
window.c
@ -1244,6 +1244,29 @@ static int TranslateKey(WPARAM wParam, LPARAM lParam, unsigned char *output) {
|
||||
cancel_alt = TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* NetHack keypad mode. This may conflict with Shift-PgUp/PgDn,
|
||||
* so we do it first.
|
||||
*/
|
||||
if (cfg.nethack_keypad) {
|
||||
int shift = keystate[VK_SHIFT] & 0x80;
|
||||
/*
|
||||
* NB the shifted versions only work with numlock off.
|
||||
*/
|
||||
switch ( (lParam >> 16) & 0x1FF ) {
|
||||
case 0x047: *p++ = shift ? 'Y' : 'y'; return p - output;
|
||||
case 0x048: *p++ = shift ? 'K' : 'k'; return p - output;
|
||||
case 0x049: *p++ = shift ? 'U' : 'u'; return p - output;
|
||||
case 0x04B: *p++ = shift ? 'H' : 'h'; return p - output;
|
||||
case 0x04C: *p++ = '.'; return p - output;
|
||||
case 0x04D: *p++ = shift ? 'L' : 'l'; return p - output;
|
||||
case 0x04F: *p++ = shift ? 'B' : 'b'; return p - output;
|
||||
case 0x050: *p++ = shift ? 'J' : 'j'; return p - output;
|
||||
case 0x051: *p++ = shift ? 'N' : 'n'; return p - output;
|
||||
case 0x053: *p++ = '.'; return p - output;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Shift-PgUp, Shift-PgDn, and Alt-F4 all produce window
|
||||
* events: we'll deal with those now.
|
||||
@ -1287,24 +1310,7 @@ static int TranslateKey(WPARAM wParam, LPARAM lParam, unsigned char *output) {
|
||||
return p - output;
|
||||
}
|
||||
|
||||
if (cfg.nethack_keypad) {
|
||||
int shift = keystate[VK_SHIFT] & 0x80;
|
||||
/*
|
||||
* NB the shifted versions only work with numlock off.
|
||||
*/
|
||||
switch ( (lParam >> 16) & 0x1FF ) {
|
||||
case 0x047: *p++ = shift ? 'Y' : 'y'; return p - output;
|
||||
case 0x048: *p++ = shift ? 'K' : 'k'; return p - output;
|
||||
case 0x049: *p++ = shift ? 'U' : 'u'; return p - output;
|
||||
case 0x04B: *p++ = shift ? 'H' : 'h'; return p - output;
|
||||
case 0x04C: *p++ = '.'; return p - output;
|
||||
case 0x04D: *p++ = shift ? 'L' : 'l'; return p - output;
|
||||
case 0x04F: *p++ = shift ? 'B' : 'b'; return p - output;
|
||||
case 0x050: *p++ = shift ? 'J' : 'j'; return p - output;
|
||||
case 0x051: *p++ = shift ? 'N' : 'n'; return p - output;
|
||||
case 0x053: *p++ = '.'; return p - output;
|
||||
}
|
||||
} else if (app_keypad_keys) {
|
||||
if (app_keypad_keys) {
|
||||
/*
|
||||
* If we're in applications keypad mode, we have to process it
|
||||
* before char-map translation, because it will pre-empt lots
|
||||
|
Loading…
x
Reference in New Issue
Block a user