mirror of
https://github.com/wailsapp/wails.git
synced 2026-03-14 14:45:49 +01:00
Fix hidden menuItem on windows
And bring menu_windows into alignment with popupmenu_windows
This commit is contained in:
parent
dc662b561a
commit
b733b1d3c4
2 changed files with 27 additions and 13 deletions
|
|
@ -36,6 +36,14 @@ func (w *windowsMenu) update() {
|
|||
|
||||
func (w *windowsMenu) processMenu(parentMenu w32.HMENU, inputMenu *Menu) {
|
||||
for _, item := range inputMenu.items {
|
||||
w.currentMenuID++
|
||||
itemID := w.currentMenuID
|
||||
w.menuMapping[itemID] = item
|
||||
|
||||
menuItemImpl := newMenuItemImpl(item, parentMenu, itemID)
|
||||
menuItemImpl.parent = inputMenu
|
||||
item.impl = menuItemImpl
|
||||
|
||||
if item.Hidden() {
|
||||
if item.accelerator != nil && item.callback != nil {
|
||||
if w.parentWindow != nil {
|
||||
|
|
@ -44,11 +52,7 @@ func (w *windowsMenu) processMenu(parentMenu w32.HMENU, inputMenu *Menu) {
|
|||
globalApplication.removeKeyBinding(item.accelerator.String())
|
||||
}
|
||||
}
|
||||
continue
|
||||
}
|
||||
w.currentMenuID++
|
||||
itemID := w.currentMenuID
|
||||
w.menuMapping[itemID] = item
|
||||
|
||||
flags := uint32(w32.MF_STRING)
|
||||
if item.disabled {
|
||||
|
|
@ -84,6 +88,11 @@ func (w *windowsMenu) processMenu(parentMenu w32.HMENU, inputMenu *Menu) {
|
|||
}
|
||||
var menuText = w32.MustStringToUTF16Ptr(thisText)
|
||||
|
||||
// If the item is hidden, don't append
|
||||
if item.Hidden() {
|
||||
continue
|
||||
}
|
||||
|
||||
w32.AppendMenu(parentMenu, flags, uintptr(itemID), menuText)
|
||||
if item.bitmap != nil {
|
||||
w32.SetMenuIcons(parentMenu, itemID, item.bitmap, nil)
|
||||
|
|
|
|||
|
|
@ -61,6 +61,14 @@ func (p *Win32Menu) newMenu() w32.HMENU {
|
|||
func (p *Win32Menu) buildMenu(parentMenu w32.HMENU, inputMenu *Menu) {
|
||||
currentRadioGroup := RadioGroup{}
|
||||
for _, item := range inputMenu.items {
|
||||
p.currentMenuID++
|
||||
itemID := p.currentMenuID
|
||||
p.menuMapping[itemID] = item
|
||||
|
||||
menuItemImpl := newMenuItemImpl(item, parentMenu, itemID)
|
||||
menuItemImpl.parent = inputMenu
|
||||
item.impl = menuItemImpl
|
||||
|
||||
if item.Hidden() {
|
||||
if item.accelerator != nil {
|
||||
if p.parentWindow != nil {
|
||||
|
|
@ -71,14 +79,7 @@ func (p *Win32Menu) buildMenu(parentMenu w32.HMENU, inputMenu *Menu) {
|
|||
globalApplication.removeKeyBinding(item.accelerator.String())
|
||||
}
|
||||
}
|
||||
continue
|
||||
}
|
||||
p.currentMenuID++
|
||||
itemID := p.currentMenuID
|
||||
p.menuMapping[itemID] = item
|
||||
|
||||
menuItemImpl := newMenuItemImpl(item, parentMenu, itemID)
|
||||
menuItemImpl.parent = inputMenu
|
||||
|
||||
flags := uint32(w32.MF_STRING)
|
||||
if item.disabled {
|
||||
|
|
@ -131,6 +132,12 @@ func (p *Win32Menu) buildMenu(parentMenu w32.HMENU, inputMenu *Menu) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If the item is hidden, don't append
|
||||
if item.Hidden() {
|
||||
continue
|
||||
}
|
||||
|
||||
ok := w32.AppendMenu(parentMenu, flags, uintptr(itemID), w32.MustStringToUTF16Ptr(menuText))
|
||||
if !ok {
|
||||
globalApplication.fatal("error adding menu item '%s'", menuText)
|
||||
|
|
@ -141,8 +148,6 @@ func (p *Win32Menu) buildMenu(parentMenu w32.HMENU, inputMenu *Menu) {
|
|||
globalApplication.fatal("error setting menu icons: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
item.impl = menuItemImpl
|
||||
}
|
||||
if len(currentRadioGroup) > 0 {
|
||||
for _, radioMember := range currentRadioGroup {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue