From ed95e2bbdf36e005767ff86fe467bc9606820aa5 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Wed, 29 Jul 2009 16:37:36 +0000 Subject: [PATCH] bug 269313: wrong shell focus after multiple configurations selection patch from Irit Belezko --- .../eclipse/cdt/ui/newui/AbstractPage.java | 2 +- .../ui/newui/ConfigMultiSelectionDialog.java | 26 ++++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractPage.java index e2830f41192..1fb30db8027 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractPage.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/AbstractPage.java @@ -406,7 +406,7 @@ implements boolean enterMultiCfgsDialog = (multiCfgs == null) || (multiCfgs == cfgDescs) || !areCfgsStillThere(multiCfgs); if (enterMultiCfgsDialog) { - ICConfigurationDescription[] mcfgs = ConfigMultiSelectionDialog.select(cfgDescs); + ICConfigurationDescription[] mcfgs = ConfigMultiSelectionDialog.select(cfgDescs, parentComposite.getShell()); if (mcfgs == null || mcfgs.length == 0) { // return back to previous selection int cfgIndex = -1; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/ConfigMultiSelectionDialog.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/ConfigMultiSelectionDialog.java index 5fe3a764930..38caf9a3bc5 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/ConfigMultiSelectionDialog.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/newui/ConfigMultiSelectionDialog.java @@ -45,9 +45,12 @@ public class ConfigMultiSelectionDialog extends Dialog { private Label message; private static ICConfigurationDescription[] result = null; - public static ICConfigurationDescription[] select(ICConfigurationDescription[] _cfgds) { + /** + * @since 5.2 + */ + public static ICConfigurationDescription[] select(ICConfigurationDescription[] _cfgds, Shell parentShell) { cfgds = _cfgds; - ConfigMultiSelectionDialog d = new ConfigMultiSelectionDialog(CUIPlugin.getActiveWorkbenchShell()); + ConfigMultiSelectionDialog d = new ConfigMultiSelectionDialog(parentShell); if (d.open() == OK) return result; return null; @@ -133,7 +136,22 @@ public class ConfigMultiSelectionDialog extends Dialog { }}); tv.setInput(cfgds); table.setFocus(); - return composite; + return composite; + } + + /** + * @deprecated (in org.eclipse.cdt.ui 5.2.0) + * + * This call is deprecated in plugin org.eclipse.cdt.ui 5.2.0 and intended to be removed + * on occasion when the plugin increases major version (Bug 285033). + * Use {@link #select(ICConfigurationDescription[], Shell)} to properly set focus. + */ + @Deprecated + public static ICConfigurationDescription[] select(ICConfigurationDescription[] _cfgds) { + cfgds = _cfgds; + ConfigMultiSelectionDialog d = new ConfigMultiSelectionDialog(CUIPlugin.getActiveWorkbenchShell()); + if (d.open() == OK) + return result; + return null; } - }