Community
Participate
Working Groups
Created attachment 188132 [details] screenshot SDK 4.1 M5 shows an extra (empty) menu on OS X between Run and Window. See the attached screenshot.
I suspect it's because the menu bar has two menu separators in a row. Top-level MenuManager's contributions: MenuManager: id=file text=&File MenuManager: id=edit text=&Edit MenuManager: id=org.eclipse.jdt.ui.source.menu text=&Source MenuManager: id=org.eclipse.jdt.ui.refactoring.menu text=Refac&tor MenuManager: id=navigate text=&Navigate MenuManager: id=org.eclipse.search.menu text=Se&arch MenuManager: id=project text=&Project org.eclipse.jface.action.GroupMarker(id=additions) MenuManager: id=org.eclipse.ui.run text=&Run org.eclipse.jface.action.Separator(id=navigate) org.eclipse.jface.action.Separator(id=edit) MenuManager: id=window text=&Window MenuManager: id=help text=&Help The gap happens between the "Run" and "Window" menus. The corresponding MMenu (elementId=org.eclipse.ui.main.menu)'s children: org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@599e80b1 (elementId: file, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: &File, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@7ad7aaf9 (elementId: edit, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: &Edit, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@62300f65 (elementId: org.eclipse.jdt.ui.source.menu, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: false, containerData: null, accessibilityPhrase: null) (label: &Source, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@4142e23f (elementId: org.eclipse.jdt.ui.refactoring.menu, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: false, containerData: null, accessibilityPhrase: null) (label: Refac&tor, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@e12eceb (elementId: navigate, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: &Navigate, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@79feea8f (elementId: org.eclipse.search.menu, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: false, containerData: null, accessibilityPhrase: null) (label: Se&arch, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@ae03a4d (elementId: project, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: &Project, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuSeparatorImpl@2deec0c5 (elementId: additions, tags: null, contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: false, containerData: null, accessibilityPhrase: null) (label: null, iconURI: null, tooltip: null, mnemonics: null) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@5f0e6817 (elementId: org.eclipse.ui.run, tags: [menuContribution:menu], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: &Run, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuSeparatorImpl@3fe01885 (elementId: navigate, tags: null, contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: null, iconURI: null, tooltip: null, mnemonics: null) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuSeparatorImpl@1169e486 (elementId: edit, tags: null, contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: null, iconURI: null, tooltip: null, mnemonics: null) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@3d02c002 (elementId: window, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: &Window, iconURI: null, tooltip: null, mnemonics: null) (enabled: true) org.eclipse.e4.ui.model.application.ui.menu.impl.MenuImpl@6aeeefcf (elementId: help, tags: [], contributorURI: null) (widget: null, renderer: null, toBeRendered: true, onTop: false, visible: true, containerData: null, accessibilityPhrase: null) (label: &Help, iconURI: null, tooltip: null, mnemonics: null) (enabled: true)
I have the same problem in this week's I-build. (i20110224-2000)
This is still an issue. Seems like a good 4.1 polish item since it is something which is obvious to the user.
*** Bug 345780 has been marked as a duplicate of this bug. ***
(In reply to comment #1) > org.eclipse.jface.action.Separator(id=navigate) > org.eclipse.jface.action.Separator(id=edit) The 'navigate' one is the culprit. Why the 'edit' one doesn't even get filled in by the menu manager, I'm not sure yet. The gap is visible on Windows 7 but unlike the Mac cannot be clicked or "hovered" over.
Here we change the 'addition' MMS's "visible" feature from 'false' to 'true'. Thread [main] (Suspended (breakpoint at line 331 in UIElementImpl)) MenuSeparatorImpl(UIElementImpl).setVisible(boolean) line: 331 ContributionRecord.updateVisibility(IEclipseContext) line: 65 MenuManagerRenderer$6.changed(IEclipseContext) line: 449 TrackableComputationExt.update(ContextChangeEvent) line: 91 EclipseContext.runAndTrack(RunAndTrack) line: 316 MenuManagerRenderer.processAddition(MMenu, MenuManager, MMenuContribution, HashSet<String>, HashSet<String>, boolean) line: 446 MenuManagerRenderer.generateContributions(MMenu, ArrayList<MMenuContribution>, boolean) line: 415 MenuManagerRenderer.processContributions(MMenu, boolean, boolean) line: 381 MenuManagerRenderer.createWidget(MUIElement, Object) line: 312 PartRenderingEngine.createWidget(MUIElement, Object) line: 833 PartRenderingEngine.safeCreateGui(MUIElement, Object, IEclipseContext) line: 587 PartRenderingEngine$6.run() line: 501 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.createGui(MUIElement, Object, IEclipseContext) line: 486 WorkbenchWindow.setup() line: 533 Here we create a Separator with id 'additions' when it should be a GroupMarker. Thread [main] (Suspended) MenuManagerRenderer.processSeparator(MenuManager, MMenuSeparator) line: 620 MenuManagerRenderer.modelProcessSwitch(MenuManager, MMenuElement) line: 569 MenuManagerRenderer.processContents(MElementContainer<MUIElement>) line: 500 PartRenderingEngine.safeCreateGui(MUIElement, Object, IEclipseContext) line: 599 PartRenderingEngine$6.run() line: 501 SafeRunner.run(ISafeRunnable) line: 42 PartRenderingEngine.createGui(MUIElement, Object, IEclipseContext) line: 486 WorkbenchWindow.setup() line: 533
This is where we seem to create a 'navigate' MMC to the main menu bar. Good old fashioned action sets at work here. <actionSet id="org.eclipse.search.searchActionSet" label="%search" visible="true"> <menu id="org.eclipse.search.menu" label="%searchMenu.label" path="navigate"> <groupMarker name="internalDialogGroup"/> <groupMarker name="dialogGroup"/> <separator name="fileSearchContextMenuActionsGroup"/> <separator name="contextMenuActionsGroup"/> <separator name="occurencesActionsGroup"/> <separator name="extraSearchGroup"/> </menu> Thread [main] (Suspended) MenuSeparatorImpl(UIElementImpl).setVisible(boolean) line: 329 ActionSet.contributeMenuGroup(ArrayList<MMenuContribution>, String, String) line: 277 ActionSet.addContribution(String, ArrayList<MMenuContribution>, IConfigurationElement, boolean, String) line: 239 ActionSet.addToModel(ArrayList<MMenuContribution>, ArrayList<MToolBarContribution>, ArrayList<MTrimContribution>) line: 99 MenuPersistence.readActionSets() line: 202 MenuPersistence.read() line: 120 WorkbenchMenuService.readRegistry() line: 117
Created attachment 196760 [details] Patch to honour group markers v01 Make sure that the visibility of an actionSet doesn't turn group markers into separators. PW
Created attachment 196763 [details] Patch to honour group markers v02 Capture the "additions" marker. PW
(In reply to comment #9) > Created attachment 196763 [details] > Patch to honour group markers v02 I have verified that the "additions", "edit", and "navigate" jface separators in the main menu's menu manager has now been turned into group markers correctly (which is what they are in 3.x). The model is still "bad" though.
(In reply to comment #9) > Created attachment 196763 [details] > Patch to honour group markers v02 Released to HEAD, the group markers should really be group markers. PW
(In reply to comment #11) > > Released to HEAD, the group markers should really be group markers. Tested this on DJs system, it really does get rid of the empty menubar space. PW
As an additional point of reference, my inner also looks good on Windows 7.