Skip to content

Commit a160f71

Browse files
committed
fix: use submenu type for context menus with children
fixes #145
1 parent 6ba856b commit a160f71

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

packages/electron-chrome-extensions/src/browser/api/context-menus.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,11 @@ export class ContextMenusAPI {
160160
opts.submenu.forEach((item) => submenu.append(buildFromTemplate(item)))
161161
opts.submenu = submenu
162162
}
163-
return new MenuItem(opts)
163+
return new MenuItem({
164+
...opts,
165+
// Force submenu type when submenu items are present
166+
type: opts.type === 'normal' && opts.submenu ? 'submenu' : opts.type,
167+
})
164168
}
165169

166170
// Build all final MenuItems in-order
@@ -238,8 +242,11 @@ export class ContextMenusAPI {
238242

239243
menuItemOptions = [...menuItemOptions, groupMenuItemOptions, ...children]
240244
} else if (extensionMenuItemOptions.length > 0) {
241-
// Set all children to show icon
242-
const children = extensionMenuItemOptions.map((opt) => ({ ...opt, showIcon: true }))
245+
// Set all top-level children to show icon
246+
const children = extensionMenuItemOptions.map((opt) => ({
247+
...opt,
248+
showIcon: !opt.props.parentId,
249+
}))
243250
menuItemOptions = [...menuItemOptions, ...children]
244251
}
245252
}

0 commit comments

Comments
 (0)