Mercurial > dwindows
comparison 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 |
comparison
equal
deleted
inserted
replaced
299:2a97f8d9b297 | 300:4559a2fd2db2 |
---|---|
194 } | 194 } |
195 if(box > 0) | 195 if(box > 0) |
196 return lastbox; | 196 return lastbox; |
197 return handle; | 197 return handle; |
198 } | 198 } |
199 | |
199 | 200 |
200 /* Return the entryfield child of a window */ | 201 /* Return the entryfield child of a window */ |
201 HWND _find_entryfield(HWND handle) | 202 HWND _find_entryfield(HWND handle) |
202 { | 203 { |
203 HENUM henum; | 204 HENUM henum; |
1972 break; | 1973 break; |
1973 case WM_CHAR: | 1974 case WM_CHAR: |
1974 { | 1975 { |
1975 int (* API keypressfunc)(HWND, char, int, int, void *) = (int (* API)(HWND, char, int, int, void *))tmp->signalfunction; | 1976 int (* API keypressfunc)(HWND, char, int, int, void *) = (int (* API)(HWND, char, int, int, void *))tmp->signalfunction; |
1976 | 1977 |
1977 if(hWnd == tmp->window && !(SHORT1FROMMP(mp1) & KC_KEYUP)) | 1978 if((hWnd == tmp->window || _toplevel_window(hWnd) == tmp->window) && !(SHORT1FROMMP(mp1) & KC_KEYUP)) |
1978 { | 1979 { |
1979 int vk; | 1980 int vk; |
1980 char ch = 0; | 1981 char ch = 0; |
1981 | 1982 |
1982 if(SHORT1FROMMP(mp1) & KC_CHAR) | 1983 if(SHORT1FROMMP(mp1) & KC_CHAR) |
1983 ch = (char)SHORT1FROMMP(mp2); | 1984 ch = (char)SHORT1FROMMP(mp2); |
1984 if(SHORT1FROMMP(mp1) & KC_VIRTUALKEY) | 1985 if(SHORT1FROMMP(mp1) & KC_VIRTUALKEY) |
1985 vk = SHORT2FROMMP(mp2); | 1986 vk = SHORT2FROMMP(mp2); |
1986 else | 1987 else |
1987 vk = SHORT1FROMMP(mp2); | 1988 vk = SHORT1FROMMP(mp2) + 128; |
1988 | 1989 |
1989 /* This is a hack to fix shift presses showing | 1990 /* This is a hack to fix shift presses showing |
1990 * up as tabs! | 1991 * up as tabs! |
1991 */ | 1992 */ |
1992 if(ch == '\t' && !(SHORT1FROMMP(mp1) & KC_CHAR)) | 1993 if(ch == '\t' && !(SHORT1FROMMP(mp1) & KC_CHAR)) |