Mercurial > dwindows
diff win/dw.c @ 267:bf8b907f8a29
Added initial version of updated key_press_event callback.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 03 Mar 2003 19:50:19 +0000 |
parents | 9ea4ac9a097f |
children | d706e0dbb0cb |
line wrap: on
line diff
--- a/win/dw.c Fri Feb 28 01:32:32 2003 +0000 +++ b/win/dw.c Mon Mar 03 19:50:19 2003 +0000 @@ -1377,11 +1377,20 @@ break; case WM_CHAR: { - int (*keypressfunc)(HWND, int, void *) = tmp->signalfunction; + int (*keypressfunc)(HWND, char, int, int, void *) = tmp->signalfunction; if(hWnd == tmp->window) { - result = keypressfunc(tmp->window, LOWORD(mp2), tmp->data); + int special = 0; + + if(GetAsyncKeyState(VK_SHIFT) & 0x8000) + special |= KC_SHIFT; + if(GetAsyncKeyState(VK_CONTROL) & 0x8000) + special |= KC_CTRL; + if(mp2 & (1 << 29)) + special |= KC_ALT; + + result = keypressfunc(tmp->window, (char)mp1, mp1, special, tmp->data); tmp = NULL; } } @@ -1874,7 +1883,7 @@ case WM_LBUTTONDOWN: case WM_MBUTTONDOWN: case WM_RBUTTONDOWN: - SetActiveWindow(hWnd); + SetFocus(hWnd); _wndproc(hWnd, msg, mp1, mp2); break; case WM_LBUTTONUP: @@ -1884,6 +1893,7 @@ case WM_PAINT: case WM_SIZE: case WM_COMMAND: + case WM_CHAR: _wndproc(hWnd, msg, mp1, mp2); break; }