mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 08:55:19 +00:00
[WIN32K:NTUSER] Reference menus owned by a popup menu. CORE-15504
This commit is contained in:
parent
a9b88efa7c
commit
e3c8002dfc
1 changed files with 13 additions and 0 deletions
|
@ -4512,6 +4512,10 @@ PopupMenuWndProc(
|
||||||
{
|
{
|
||||||
CREATESTRUCTW *cs = (CREATESTRUCTW *) lParam;
|
CREATESTRUCTW *cs = (CREATESTRUCTW *) lParam;
|
||||||
pPopupMenu->spmenu = UserGetMenuObject(cs->lpCreateParams);
|
pPopupMenu->spmenu = UserGetMenuObject(cs->lpCreateParams);
|
||||||
|
if (pPopupMenu->spmenu)
|
||||||
|
{
|
||||||
|
UserReferenceObject(pPopupMenu->spmenu);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4556,6 +4560,10 @@ PopupMenuWndProc(
|
||||||
|
|
||||||
case WM_NCDESTROY:
|
case WM_NCDESTROY:
|
||||||
{
|
{
|
||||||
|
if (pPopupMenu->spmenu)
|
||||||
|
{
|
||||||
|
IntReleaseMenuObject(pPopupMenu->spmenu);
|
||||||
|
}
|
||||||
DesktopHeapFree(Wnd->head.rpdesk, pPopupMenu );
|
DesktopHeapFree(Wnd->head.rpdesk, pPopupMenu );
|
||||||
((PMENUWND)Wnd)->ppopupmenu = 0;
|
((PMENUWND)Wnd)->ppopupmenu = 0;
|
||||||
Wnd->fnid = FNID_DESTROY;
|
Wnd->fnid = FNID_DESTROY;
|
||||||
|
@ -4571,6 +4579,11 @@ PopupMenuWndProc(
|
||||||
ERR("Bad Menu Handle\n");
|
ERR("Bad Menu Handle\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
UserReferenceObject(pmenu);
|
||||||
|
if (pPopupMenu->spmenu)
|
||||||
|
{
|
||||||
|
IntReleaseMenuObject(pPopupMenu->spmenu);
|
||||||
|
}
|
||||||
pPopupMenu->spmenu = pmenu;
|
pPopupMenu->spmenu = pmenu;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue