Mercurial > dwindows
comparison os2/dw.c @ 93:98cce029a611
Changed handling of menu item click events.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Thu, 25 Apr 2002 02:10:49 +0000 |
parents | eeb98f881663 |
children | 7c3eef54c98c |
comparison
equal
deleted
inserted
replaced
92:0a085f295e81 | 93:98cce029a611 |
---|---|
43 LONG _foreground = 0xAAAAAA, _background = 0; | 43 LONG _foreground = 0xAAAAAA, _background = 0; |
44 | 44 |
45 HWND hwndBubble = NULLHANDLE, hwndBubbleLast = NULLHANDLE; | 45 HWND hwndBubble = NULLHANDLE, hwndBubbleLast = NULLHANDLE; |
46 PRECORDCORE pCore = NULL; | 46 PRECORDCORE pCore = NULL; |
47 ULONG aulBuffer[4]; | 47 ULONG aulBuffer[4]; |
48 HWND lasthcnr = 0, lastitem = 0; | 48 HWND lasthcnr = 0, lastitem = 0, popup = 0; |
49 | 49 |
50 #define IS_WARP4() (aulBuffer[0] == 20 && aulBuffer[1] >= 40) | 50 #define IS_WARP4() (aulBuffer[0] == 20 && aulBuffer[1] >= 40) |
51 | 51 |
52 #ifndef min | 52 #ifndef min |
53 #define min(a, b) (((a < b) ? a : b)) | 53 #define min(a, b) (((a < b) ? a : b)) |
1773 int (*clickfunc)(HWND, void *) = (int (*)(HWND, void *))tmp->signalfunction; | 1773 int (*clickfunc)(HWND, void *) = (int (*)(HWND, void *))tmp->signalfunction; |
1774 ULONG command = COMMANDMSG(&msg)->cmd; | 1774 ULONG command = COMMANDMSG(&msg)->cmd; |
1775 | 1775 |
1776 if(tmp->window < 65536 && command == tmp->window) | 1776 if(tmp->window < 65536 && command == tmp->window) |
1777 { | 1777 { |
1778 result = clickfunc(tmp->window, tmp->data); | 1778 result = clickfunc(popup ? popup : tmp->window, tmp->data); |
1779 tmp = NULL; | 1779 tmp = NULL; |
1780 } | 1780 } |
1781 } | 1781 } |
1782 break; | 1782 break; |
1783 case WM_CONTROL: | 1783 case WM_CONTROL: |
3626 */ | 3626 */ |
3627 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) | 3627 void dw_menu_popup(HMENUI *menu, HWND parent, int x, int y) |
3628 { | 3628 { |
3629 if(menu && *menu) | 3629 if(menu && *menu) |
3630 { | 3630 { |
3631 popup = parent; | |
3631 WinPopupMenu(HWND_DESKTOP, parent, (*menu)->menu, x, dw_screen_height() - y, 0, PU_KEYBOARD | PU_MOUSEBUTTON1 | PU_VCONSTRAIN | PU_HCONSTRAIN); | 3632 WinPopupMenu(HWND_DESKTOP, parent, (*menu)->menu, x, dw_screen_height() - y, 0, PU_KEYBOARD | PU_MOUSEBUTTON1 | PU_VCONSTRAIN | PU_HCONSTRAIN); |
3632 free(*menu); | 3633 free(*menu); |
3633 *menu = NULL; | 3634 *menu = NULL; |
3634 } | 3635 } |
3635 } | 3636 } |