From 63c6283b941a87d35fbb7a9ac2322ce4d8174530 Mon Sep 17 00:00:00 2001 From: "mkaply%us.ibm.com" Date: Mon, 16 Oct 2000 22:30:06 +0000 Subject: [PATCH] #56770 r=mkaply, a=blizzard More attempts to fix keyboard stuff. git-svn-id: svn://10.0.0.236/trunk@81261 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/widget/src/os2/nsWindow.cpp | 11 ++++++++++- mozilla/widget/src/os2/nsWindow.h | 18 ++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/mozilla/widget/src/os2/nsWindow.cpp b/mozilla/widget/src/os2/nsWindow.cpp index 2dafaa41eb2..725a08d830f 100644 --- a/mozilla/widget/src/os2/nsWindow.cpp +++ b/mozilla/widget/src/os2/nsWindow.cpp @@ -1798,6 +1798,10 @@ PRBool nsWindow::OnKey( MPARAM mp1, MPARAM mp2) event.isShift = PR_FALSE; // OS2TODO - Why do we need this? event.keyCode = 0; } + else if (usChar != ' ') + { + event.charCode = 0; + } } } @@ -2661,7 +2665,12 @@ PRUint32 WMChar2KeyCode( MPARAM mp1, MPARAM mp2) else if( flags & KC_VIRTUALKEY) { USHORT vk = SHORT2FROMMP( mp2); - if( !(flags & KC_CHAR) || + if( (flags & KC_ALT) && isNumPadScanCode(CHAR4FROMMP(mp1)) ) + { + // No virtual key value for Alt+NumPad keystrokes + rc = 0; + } + else if( !(flags & KC_CHAR) || (vk == VK_BACKSPACE) || (vk == VK_TAB) || (vk == VK_ENTER) || (vk == VK_NEWLINE) || (vk == VK_SPACE) ) { diff --git a/mozilla/widget/src/os2/nsWindow.h b/mozilla/widget/src/os2/nsWindow.h index 424fae17ffd..3437962e643 100644 --- a/mozilla/widget/src/os2/nsWindow.h +++ b/mozilla/widget/src/os2/nsWindow.h @@ -295,6 +295,24 @@ protected: #define PM2NS_PARENT NS2PM_PARENT #define PM2NS NS2PM +#define PMSCAN_PAD7 0x47 +#define PMSCAN_PAD8 0x48 +#define PMSCAN_PAD9 0x49 +#define PMSCAN_PADMINUS 0x4A +#define PMSCAN_PAD4 0x4B +#define PMSCAN_PAD5 0x4C +#define PMSCAN_PAD6 0x4D +#define PMSCAN_PADPLUS 0x4E +#define PMSCAN_PAD1 0x4F +#define PMSCAN_PAD2 0x50 +#define PMSCAN_PAD3 0x51 +#define PMSCAN_PAD0 0x52 + +#define isNumPadScanCode(scanCode) !( (scanCode < PMSCAN_PAD7) || \ + (scanCode > PMSCAN_PAD0) || \ + (scanCode == PMSCAN_PADMINUS) || \ + (scanCode == PMSCAN_PADPLUS) ) + extern PRUint32 WMChar2KeyCode( MPARAM mp1, MPARAM mp2); extern nsWindow *NS_HWNDToWindow( HWND hwnd);