# HG changeset patch # User bsmith@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1048761838 0 # Node ID 4559a2fd2db226e863a8a6591a593e8e0c1906e6 # Parent 2a97f8d9b297dfde67a93a7fdf00129aa9e9fcc1 Keypress handler fixes, more need to be done, because I screwed up and looked at PMWIN.H instead of the OS/2 header. diff -r 2a97f8d9b297 -r 4559a2fd2db2 dw.h --- a/dw.h Thu Mar 27 08:54:48 2003 +0000 +++ b/dw.h Thu Mar 27 10:43:58 2003 +0000 @@ -137,6 +137,46 @@ #define DW_OS2_NEW_WINDOW 1 +/* Virtual Key Codes */ +#define VK_LBUTTON VK_BUTTON1 +#define VK_RBUTTON VK_BUTTON2 +#define VK_MBUTTON VK_BUTTON3 +#define VK_RETURN VK_NEWLINE +#define VK_PRINT VK_PRINTSCRN +#define VK_CANCEL 128 +#define VK_CAPITAL 129 +#define VK_ESCAPE 130 +#define VK_PRIOR 131 +#define VK_NEXT 132 +#define VK_SELECT 133 +#define VK_EXECUTE 134 +#define VK_SNAPSHOT 135 +#define VK_HELP 136 +#define VK_LWIN 137 +#define VK_RWIN 138 +#define VK_MULTIPLY 139 +#define VK_ADD 140 +#define VK_SEPARATOR 141 +#define VK_SUBTRACT 142 +#define VK_DECIMAL 143 +#define VK_DIVIDE 144 +#define VK_SCROLL 145 +#define VK_LSHIFT 146 +#define VK_RSHIFT 147 +#define VK_LCONTROL 148 +#define VK_RCONTROL 149 +#define VK_NUMPAD0 150 +#define VK_NUMPAD1 151 +#define VK_NUMPAD2 152 +#define VK_NUMPAD3 153 +#define VK_NUMPAD4 154 +#define VK_NUMPAD5 155 +#define VK_NUMPAD6 156 +#define VK_NUMPAD7 157 +#define VK_NUMPAD8 158 +#define VK_NUMPAD9 159 + + typedef struct _window_data { PFNWP oldproc; UserData *root; diff -r 2a97f8d9b297 -r 4559a2fd2db2 dwtest.c --- a/dwtest.c Thu Mar 27 08:54:48 2003 +0000 +++ b/dwtest.c Thu Mar 27 10:43:58 2003 +0000 @@ -76,7 +76,7 @@ case VK_TAB : keyname = "VK_TAB"; break; case VK_CLEAR : keyname = "VK_CLEAR"; break; case VK_RETURN : keyname = "VK_RETURN"; break; - case VK_MENU : keyname = "VK_MENU"; break; +/* case VK_MENU : keyname = "VK_MENU"; break;*/ case VK_PAUSE : keyname = "VK_PAUSE"; break; case VK_CAPITAL : keyname = "VK_CAPITAL"; break; case VK_ESCAPE : keyname = "VK_ESCAPE"; break; diff -r 2a97f8d9b297 -r 4559a2fd2db2 makefile.vac --- a/makefile.vac Thu Mar 27 08:54:48 2003 +0000 +++ b/makefile.vac Thu Mar 27 10:43:58 2003 +0000 @@ -38,7 +38,7 @@ copy dwcompat.dll dll\dwcompat.dll dwtest.obj: - icc /Ti /DOS2 /DTCPV40HDRS /Sp1 /I. /I..\ipformat /I..\include /Sm /Ss /Q /Gm /Gt /C dwtest.c + icc /Ti /DOS2 /DTCPV40HDRS /Sp1 /I. /Sm /Ss /Q /Gm /Gt /C dwtest.c dwtest.exe: dwtest.obj icc @<< /B" /DE /optfunc" diff -r 2a97f8d9b297 -r 4559a2fd2db2 os2/dw.c --- a/os2/dw.c Thu Mar 27 08:54:48 2003 +0000 +++ b/os2/dw.c Thu Mar 27 10:43:58 2003 +0000 @@ -197,6 +197,7 @@ return handle; } + /* Return the entryfield child of a window */ HWND _find_entryfield(HWND handle) { @@ -1974,7 +1975,7 @@ { int (* API keypressfunc)(HWND, char, int, int, void *) = (int (* API)(HWND, char, int, int, void *))tmp->signalfunction; - if(hWnd == tmp->window && !(SHORT1FROMMP(mp1) & KC_KEYUP)) + if((hWnd == tmp->window || _toplevel_window(hWnd) == tmp->window) && !(SHORT1FROMMP(mp1) & KC_KEYUP)) { int vk; char ch = 0; @@ -1984,7 +1985,7 @@ if(SHORT1FROMMP(mp1) & KC_VIRTUALKEY) vk = SHORT2FROMMP(mp2); else - vk = SHORT1FROMMP(mp2); + vk = SHORT1FROMMP(mp2) + 128; /* This is a hack to fix shift presses showing * up as tabs!