diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog index 1410fea4117..0fd8a9ba607 100644 --- a/core/org.eclipse.cdt.ui/ChangeLog +++ b/core/org.eclipse.cdt.ui/ChangeLog @@ -1,3 +1,7 @@ +2005-05-18 David Inglis + Fixed bug # 95556 + * src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java + 2005-05-12 Alain Magloire Fix multiple warnings, the use of: Workbench.setHelp() --> PlatformUI.getWorkbench().getHelpSystem().getHelp() diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java index f1361ec5984..8ae9ad1c5b5 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java @@ -210,22 +210,30 @@ public abstract class NewCProjectWizard extends BasicNewResourceWizard implement public IRunnableWithProgress getRunnable() { return new IRunnableWithProgress() { public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { + final IProgressMonitor fMonitor; if (monitor == null) { - monitor= new NullProgressMonitor(); + fMonitor= new NullProgressMonitor(); + } else { + fMonitor = monitor; } - monitor.beginTask(CUIPlugin.getResourceString(OP_DESC), 3); - - doRunPrologue(new SubProgressMonitor(monitor, 1)); - try { - doRun(new SubProgressMonitor(monitor, 1)); + fMonitor.beginTask(CUIPlugin.getResourceString(OP_DESC), 3); + final CoreException except[] = new CoreException[1]; + getShell().getDisplay().syncExec(new Runnable() { + public void run() { + doRunPrologue(new SubProgressMonitor(fMonitor, 1)); + try { + doRun(new SubProgressMonitor(fMonitor, 1)); + } + catch (CoreException e) { + except[0] = e; + } + doRunEpilogue(new SubProgressMonitor(fMonitor, 1)); + } + }); + if (except[0] != null) { + throw new InvocationTargetException(except[0]); } - catch (CoreException e) { - throw new InvocationTargetException(e); - } - doRunEpilogue(new SubProgressMonitor(monitor, 1)); - - monitor.done(); - } + fMonitor.done(); } }; }