Mercurial > dwindows
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 |