diff options
| author | Daniel Rolka | 2013-04-11 14:04:44 +0000 |
|---|---|---|
| committer | Gerrit Code Review @ Eclipse.org | 2013-04-12 13:03:52 +0000 |
| commit | 3d996ff0b4a10627420bca71805ad2b5c9195e78 (patch) | |
| tree | 75f5d0ee8c5cfd32b154ba61ca8bb92f45ad633f | |
| parent | bc9eda6cbcd650e67c86f50063b3d0a272555200 (diff) | |
| download | eclipse.platform.ui-3d996ff0b4a10627420bca71805ad2b5c9195e78.tar.gz eclipse.platform.ui-3d996ff0b4a10627420bca71805ad2b5c9195e78.tar.xz eclipse.platform.ui-3d996ff0b4a10627420bca71805ad2b5c9195e78.zip | |
Bug 395839 - AbstractEList$BasicIndexOutOfBoundsException when opening a
context menu
| -rw-r--r-- | bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java index 0cf54a36751..12e4960b939 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/MenuManagerRenderer.java @@ -629,8 +629,8 @@ public class MenuManagerRenderer extends SWTPartRenderer { Object obj = itemModel.getContributionItem(); if (obj instanceof IContextFunction) { final IEclipseContext lclContext = getContext(itemModel); - ici = (IContributionItem) ((IContextFunction) obj) - .compute(lclContext, null); + ici = (IContributionItem) ((IContextFunction) obj).compute( + lclContext, null); itemModel.setContributionItem(ici); } else if (obj instanceof IContributionItem) { ici = (IContributionItem) obj; @@ -890,7 +890,11 @@ public class MenuManagerRenderer extends SWTPartRenderer { legacySep.setVisible(item.isVisible()); legacySep.setOpaqueItem(item); linkModelToContribution(legacySep, item); - modelChildren.add(dest, legacySep); + if (modelChildren.size() > dest) { + modelChildren.add(dest, legacySep); + } else { + modelChildren.add(legacySep); + } } else if (menuElement instanceof MOpaqueMenuSeparator) { MOpaqueMenuSeparator legacySep = (MOpaqueMenuSeparator) menuElement; oldSeps.remove(legacySep); @@ -912,7 +916,11 @@ public class MenuManagerRenderer extends SWTPartRenderer { legacyItem.setVisible(item.isVisible()); legacyItem.setOpaqueItem(item); linkModelToContribution(legacyItem, item); - modelChildren.add(dest, legacyItem); + if (modelChildren.size() > dest) { + modelChildren.add(dest, legacyItem); + } else { + modelChildren.add(legacyItem); + } } else if (menuElement instanceof MOpaqueMenuItem) { MOpaqueMenuItem legacyItem = (MOpaqueMenuItem) menuElement; oldModelItems.remove(legacyItem); |
