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 }