comparison win/dw.c @ 467:ecf1df2edcee

Cleanup code needs to delayed by posting to the window procedure so that the handlers don't get removed before receiving the WM_COMMAND message.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 08 Oct 2003 10:01:09 +0000
parents c3dfa117b080
children 0a2f13ba2d5c
comparison
equal deleted inserted replaced
466:c3dfa117b080 467:ecf1df2edcee
1812 case WM_USER: 1812 case WM_USER:
1813 windowfunc = (void *)mp1; 1813 windowfunc = (void *)mp1;
1814 1814
1815 if(windowfunc) 1815 if(windowfunc)
1816 windowfunc((void *)mp2); 1816 windowfunc((void *)mp2);
1817 break;
1818 case WM_USER+5:
1819 dw_signal_disconnect_by_name((HWND)mp1, DW_SIGNAL_CLICKED);
1817 break; 1820 break;
1818 case WM_NOTIFY: 1821 case WM_NOTIFY:
1819 { 1822 {
1820 NMHDR FAR *tem=(NMHDR FAR *)mp2; 1823 NMHDR FAR *tem=(NMHDR FAR *)mp2;
1821 1824
4030 if(IsWindow(*menu) && !IsMenu(mymenu)) 4033 if(IsWindow(*menu) && !IsMenu(mymenu))
4031 mymenu = (HMENU)dw_window_get_data(*menu, "_dw_menu"); 4034 mymenu = (HMENU)dw_window_get_data(*menu, "_dw_menu");
4032 4035
4033 popup = parent; 4036 popup = parent;
4034 TrackPopupMenu(mymenu, 0, x, y, 0, parent, NULL); 4037 TrackPopupMenu(mymenu, 0, x, y, 0, parent, NULL);
4038 /* TODO: This needs to call this on all submenus */
4039 PostMessage(DW_HWND_OBJECT, WM_USER+5, (LPARAM)mymenu, 0);
4035 DestroyMenu(mymenu); 4040 DestroyMenu(mymenu);
4036 } 4041 }
4037 } 4042 }
4038 4043
4039 4044