Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDirk Fauth2015-03-25 08:00:10 +0000
committerBrian de Alwis2015-04-02 14:48:09 +0000
commit21a06ea739e3c429b7ba3a60d0254673d0cd0b5e (patch)
tree85af6f3642830b077960f4f7237c38746e8f8912
parentb051708e730059a22817812f59e9fb9a1e2513fd (diff)
downloadeclipse.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>
-rw-r--r--bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/LazyStackRenderer.java4
-rw-r--r--bundles/org.eclipse.e4.ui.workbench.swt/src/org/eclipse/e4/ui/internal/workbench/swt/PartRenderingEngine.java8
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

Back to the top