commit | 6ca7fe319c892906f9da7f700ae0a9f2400274c3 | [log] [tgz] |
---|---|---|
author | Eric Moffatt <emoffatt> | Thu Jul 23 21:02:13 2009 +0000 |
committer | Eric Moffatt <emoffatt> | Thu Jul 23 21:02:13 2009 +0000 |
tree | 01a8dd859b940b98524f9dac041f1ab70f4ea135 | |
parent | de50379ec892a8c14e88c9141458476febe04010 [diff] |
More work on Bug 270597 - [UI] Need to handle perspectives properly
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartRenderer.java index 50c0004..b1566fa 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartRenderer.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/SWTPartRenderer.java
@@ -311,7 +311,7 @@ public void childRemoved(MPart<?> parentElement, MPart<?> child) { super.childRemoved(parentElement, child); - if (child.getWidget() instanceof Control) { + if (child.isVisible() && child.getWidget() instanceof Control) { Control ctrl = (Control) child.getWidget(); locallyHide(ctrl); }
diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/StackRenderer.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/StackRenderer.java index f750870..c7351b6 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/StackRenderer.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/workbench/ui/renderers/swt/StackRenderer.java
@@ -53,6 +53,7 @@ import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.ToolBar; import org.eclipse.swt.widgets.ToolItem; import org.eclipse.swt.widgets.Widget; @@ -330,7 +331,13 @@ boolean isEditorStack = policy != null && policy.indexOf("EditorStack") >= 0; //$NON-NLS-1$ if (ctf.getItemCount() == 0 && !isEditorStack) { + final Shell sh = ctf.getShell(); parentElement.setVisible(false); + sh.getDisplay().asyncExec(new Runnable() { + public void run() { + sh.layout(true, true); + } + }); } // Auto-remove 'editor stack' entries on close