diff os2/dw.c @ 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 caed245ea8a1
children 9d13efce2894
line wrap: on
line diff
--- 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!