From 5719618e550ebc69298a1fbbf203d534a846a193 Mon Sep 17 00:00:00 2001 From: Dani Megert Date: Tue, 3 Apr 2012 14:34:35 +0200 Subject: Fixed bug 344101: out-of-sync handling: keeping Eclipse editor content should dirty the editor --- .../src/org/eclipse/ui/texteditor/AbstractTextEditor.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AbstractTextEditor.java b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AbstractTextEditor.java index 8b18f0a95a9..05fe55a1ca0 100644 --- a/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AbstractTextEditor.java +++ b/org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AbstractTextEditor.java @@ -4758,12 +4758,12 @@ public abstract class AbstractTextEditor extends EditorPart implements ITextEdit close(false); } - } else { + } else if (fHasBeenActivated) { title= EditorMessages.Editor_error_activated_outofsync_title; msg= NLSUtility.format(EditorMessages.Editor_error_activated_outofsync_message, inputName); - if (fHasBeenActivated && MessageDialog.openQuestion(shell, title, msg)) { + if (MessageDialog.openQuestion(shell, title, msg)) { try { @@ -4781,6 +4781,15 @@ public abstract class AbstractTextEditor extends EditorPart implements ITextEdit ErrorDialog.openError(shell, title, msg, x.getStatus()); } } + } else if (!isDirty()) { + // Trigger dummy change to dirty the editor, for details see https://bugs.eclipse.org/344101 . + try { + IDocument document= provider.getDocument(input); + if (document != null) + document.replace(0, 0, ""); //$NON-NLS-1$ + } catch (BadLocationException e) { + // Ignore as this can't happen + } } } } -- cgit v1.2.3