Mercurial > dwindows
diff win/dw.c @ 468:0a2f13ba2d5c
More menu fixes, free signal handlers and memory on OS/2, and the begining
for Windows.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Wed, 08 Oct 2003 21:40:06 +0000 |
parents | ecf1df2edcee |
children | 7952b9c1dc07 |
line wrap: on
line diff
--- a/win/dw.c Wed Oct 08 10:01:09 2003 +0000 +++ b/win/dw.c Wed Oct 08 21:40:06 2003 +0000 @@ -417,6 +417,12 @@ return TRUE; } +void _free_menu_data(HMENU menu) +{ + /* TODO: This needs to call this on all submenus */ + dw_signal_disconnect_by_name((HWND)menu, DW_SIGNAL_CLICKED); +} + /* Convert to our internal color scheme */ ULONG _internal_color(ULONG color) { @@ -1816,7 +1822,8 @@ windowfunc((void *)mp2); break; case WM_USER+5: - dw_signal_disconnect_by_name((HWND)mp1, DW_SIGNAL_CLICKED); + _free_menu_data((HMENU)mp1); + DestroyMenu((HMENU)mp1); break; case WM_NOTIFY: { @@ -4035,9 +4042,7 @@ popup = parent; TrackPopupMenu(mymenu, 0, x, y, 0, parent, NULL); - /* TODO: This needs to call this on all submenus */ PostMessage(DW_HWND_OBJECT, WM_USER+5, (LPARAM)mymenu, 0); - DestroyMenu(mymenu); } }