@@ -36,13 +36,12 @@ var (
36
36
pCreatePopupMenu = u32 .NewProc ("CreatePopupMenu" )
37
37
pCreateWindowEx = u32 .NewProc ("CreateWindowExW" )
38
38
pDefWindowProc = u32 .NewProc ("DefWindowProcW" )
39
- pDeleteMenu = u32 .NewProc ("DeleteMenu " )
39
+ pRemoveMenu = u32 .NewProc ("RemoveMenu " )
40
40
pDestroyWindow = u32 .NewProc ("DestroyWindow" )
41
41
pDispatchMessage = u32 .NewProc ("DispatchMessageW" )
42
42
pDrawIconEx = u32 .NewProc ("DrawIconEx" )
43
43
pGetCursorPos = u32 .NewProc ("GetCursorPos" )
44
44
pGetDC = u32 .NewProc ("GetDC" )
45
- pGetMenuItemID = u32 .NewProc ("GetMenuItemID" )
46
45
pGetMessage = u32 .NewProc ("GetMessageW" )
47
46
pGetSystemMetrics = u32 .NewProc ("GetSystemMetrics" )
48
47
pInsertMenuItem = u32 .NewProc ("InsertMenuItemW" )
@@ -557,6 +556,14 @@ func (t *winTray) addOrUpdateMenuItem(menuItemId uint32, parentId uint32, title
557
556
}
558
557
559
558
if res == 0 {
559
+ // Menu item does not already exist, create it
560
+ t .muMenus .RLock ()
561
+ submenu , exists := t .menus [menuItemId ]
562
+ t .muMenus .RUnlock ()
563
+ if exists {
564
+ mi .Mask |= MIIM_SUBMENU
565
+ mi .SubMenu = submenu
566
+ }
560
567
t .addToVisibleItems (parentId , menuItemId )
561
568
position := t .getVisibleItemIndex (parentId , menuItemId )
562
569
res , _ , err = pInsertMenuItem .Call (
@@ -613,14 +620,14 @@ func (t *winTray) addSeparatorMenuItem(menuItemId, parentId uint32) error {
613
620
}
614
621
615
622
func (t * winTray ) hideMenuItem (menuItemId , parentId uint32 ) error {
616
- // https://msdn .microsoft.com/en-us/library/ windows/desktop/ms647629(v=vs.85).aspx
623
+ // https://docs .microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-removemenu
617
624
const MF_BYCOMMAND = 0x00000000
618
625
const ERROR_SUCCESS syscall.Errno = 0
619
626
620
627
t .muMenus .RLock ()
621
628
menu := uintptr (t .menus [parentId ])
622
629
t .muMenus .RUnlock ()
623
- res , _ , err := pDeleteMenu .Call (
630
+ res , _ , err := pRemoveMenu .Call (
624
631
menu ,
625
632
uintptr (menuItemId ),
626
633
MF_BYCOMMAND ,
0 commit comments