changeset 300:4559a2fd2db2

Keypress handler fixes, more need to be done, because I screwed up and looked at PMWIN.H instead of the OS/2 header.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Thu, 27 Mar 2003 10:43:58 +0000
parents 2a97f8d9b297
children 887675ee5b67
files dw.h dwtest.c makefile.vac os2/dw.c
diffstat 4 files changed, 45 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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;
--- 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;
--- 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"
--- 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!