diff options
author | Dirk Fauth | 2015-03-25 08:00:10 +0000 |
---|---|---|
committer | Brian de Alwis | 2015-04-02 14:48:09 +0000 |
commit | 21a06ea739e3c429b7ba3a60d0254673d0cd0b5e (patch) | |
tree | 85af6f3642830b077960f4f7237c38746e8f8912 | |
parent | b051708e730059a22817812f59e9fb9a1e2513fd (diff) | |
download | eclipse.platform.ui-21a06ea739e3c429b7ba3a60d0254673d0cd0b5e.tar.gz eclipse.platform.ui-21a06ea739e3c429b7ba3a60d0254673d0cd0b5e.tar.xz eclipse.platform.ui-21a06ea739e3c429b7ba3a60d0254673d0cd0b5e.zip |
Bug 457939 - MUIElement#setCurSharedRef is never cleared when hiding recursively
Change-Id: Ic691ca1bc85a0cb311db29ebdda84d0887f7e873
Signed-off-by: Dirk Fauth <dirk.fauth@googlemail.com>
2 files changed, 12 insertions, 0 deletions
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java index 86c20ae75a8..0c5251ade5f 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java @@ -9,6 +9,7 @@ * IBM Corporation - initial API and implementation * Lars Vogel <Lars.Vogel@vogella.com> - Bug 441150 * Fabio Zadrozny (fabiofz@gmail.com) - Bug 436763 + * Dirk Fauth <dirk.fauth@googlemail.com> - Bug 457939 *******************************************************************************/ package org.eclipse.e4.ui.workbench.renderers.swt; @@ -169,6 +170,9 @@ public abstract class LazyStackRenderer extends SWTPartRenderer { if (element instanceof MPlaceholder) { MPlaceholder ph = (MPlaceholder) element; element = ph.getRef(); + if (element != null && element.getCurSharedRef() == ph) { + element.setCurSharedRef(null); + } } // Hide any floating windows diff --git a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java index 2587387894b..cb3ca79f949 100644 --- a/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java +++ b/bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java @@ -8,6 +8,7 @@ * Contributors: * IBM Corporation - initial API and implementation * Simon Scholz <simon.scholz@vogella.com> - Bug 462056 + * Dirk Fauth <dirk.fauth@googlemail.com> - Bug 457939 *******************************************************************************/ package org.eclipse.e4.ui.internal.workbench.swt; @@ -831,6 +832,13 @@ public class PartRenderingEngine implements IPresentationEngine { parentRenderer.hideChild(element.getParent(), element); } + if (element instanceof MPlaceholder) { + MPlaceholder ph = (MPlaceholder) element; + if (ph.getRef() != null && ph.getRef().getCurSharedRef() == ph) { + ph.getRef().setCurSharedRef(null); + } + } + AbstractPartRenderer renderer = getRendererFor(element); // If the element hasn't been rendered then this is a NO-OP |