Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java')
-rw-r--r--bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
index 1ebda9847..f3fbc5261 100644
--- a/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
+++ b/bundles/org.eclipse.compare/plugins/org.eclipse.compare/compare/org/eclipse/compare/internal/CompareEditor.java
@@ -342,7 +342,7 @@ public class CompareEditor extends EditorPart implements IReusableEditor, ISavea
protected void initializeInBackground(final CompareEditorInput cei, final boolean hadPreviousInput) {
// Need to cancel any running jobs associated with the oldInput
- Job job = new Job(CompareMessages.CompareEditor_0) {
+ Job job = new Job(NLS.bind(CompareMessages.CompareEditor_0, cei.getTitle())) {
protected IStatus run(final IProgressMonitor monitor) {
final int[] newState = new int[] { ERROR };
try {
@@ -366,11 +366,11 @@ public class CompareEditor extends EditorPart implements IReusableEditor, ISavea
newState[0] = CANCELED;
Display.getDefault().syncExec(new Runnable() {
public void run() {
+ if (fPageBook.isDisposed())
+ return;
// we need to register the saveable if we had a previous input or if
// there are knownSaveables (which means that the workbench called
// getSaveables and got an empty list
- if (monitor.isCanceled() || fPageBook.isDisposed())
- return;
if (hadPreviousInput || (knownSaveables != null && !isAllSaveablesKnown())) {
registerSaveable();
}
@@ -448,6 +448,12 @@ public class CompareEditor extends EditorPart implements IReusableEditor, ISavea
closeEditor();
}
} else if (fControl == null && getState() != CREATING_CONTROL) {
+ if (getState() == CANCELED) {
+ // Close the editor when we are canceled, even when compare
+ // result has been already prepared
+ closeEditor();
+ return;
+ }
// Set the state in case this method gets called again
setState(CREATING_CONTROL);
if (getSite().getSelectionProvider() == null)

Back to the top