Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Inglis2005-06-07 20:17:24 +0000
committerDavid Inglis2005-06-07 20:17:24 +0000
commit1e9aa5ea9d9f3dd97f77f4ad731615b2c6913e83 (patch)
tree2a59c02aec3b2cf612794c5117ba26354cfc2ab4
parente54921f1dd6c93d656e9d8004462dda31005f37d (diff)
downloadorg.eclipse.cdt-1e9aa5ea9d9f3dd97f77f4ad731615b2c6913e83.tar.gz
org.eclipse.cdt-1e9aa5ea9d9f3dd97f77f4ad731615b2c6913e83.tar.xz
org.eclipse.cdt-1e9aa5ea9d9f3dd97f77f4ad731615b2c6913e83.zip
fixed bug #95885
-rw-r--r--core/org.eclipse.cdt.ui/ChangeLog4
-rw-r--r--core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/wizards/NewCProjectWizard.java35
2 files changed, 26 insertions, 13 deletions
diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog
index 4cbfe68bc1b..877768133c1 100644
--- a/core/org.eclipse.cdt.ui/ChangeLog
+++ b/core/org.eclipse.cdt.ui/ChangeLog
@@ -1,3 +1,7 @@
+2005-06-07 David Inglis
+ Fixed PR#95885 Blocking UI on project creation
+ * src/org/eclipse/cdt/ui/wizards/NewCProjectWizards.java
+
2005-02-25 Alain Magloire
Fix PR 86718: Dialog shows twice
* src/org/eclipse/cdt/internal/ui/cview/OpenProjectGroup.java
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 5dbf4531da6..23e634f754c 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,21 +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();
}
};
}
@@ -235,7 +244,7 @@ public abstract class NewCProjectWizard extends BasicNewResourceWizard implement
protected boolean invokeRunnable(IRunnableWithProgress runnable) {
IRunnableWithProgress op= new WorkspaceModifyDelegatingOperation(runnable);
try {
- getContainer().run(false, true, op);
+ getContainer().run(true, true, op);
} catch (InvocationTargetException e) {
Shell shell= getShell();
String title= CUIPlugin.getResourceString(OP_ERROR + ".title"); //$NON-NLS-1$

Back to the top