Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AbstractTextEditor.java18
1 files changed, 14 insertions, 4 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 94dd19f84f0..06d94e259a7 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
@@ -841,9 +841,17 @@ public abstract class AbstractTextEditor extends EditorPart implements ITextEdit
*/
public void run() {
ISourceViewer viewer= getSourceViewer();
- int topIndex= viewer.getTopIndex();
- int newTopIndex= Math.max(0, topIndex + fScrollIncrement);
- viewer.setTopIndex(newTopIndex);
+ if (viewer instanceof ITextViewerExtension5) {
+ ITextViewerExtension5 extension= (ITextViewerExtension5) viewer;
+ StyledText textWidget= viewer.getTextWidget();
+ int topIndex= textWidget.getTopIndex();
+ int newTopIndex= Math.max(0, topIndex + fScrollIncrement);
+ viewer.setTopIndex(extension.widgetLine2ModelLine(newTopIndex));
+ } else {
+ int topIndex= viewer.getTopIndex();
+ int newTopIndex= Math.max(0, topIndex + fScrollIncrement);
+ viewer.setTopIndex(newTopIndex);
+ }
}
}
@@ -3199,7 +3207,9 @@ public abstract class AbstractTextEditor extends EditorPart implements ITextEdit
MessageDialog.openError(shell, title, msg);
}
- } else {
+ } else {
+ updateState(getEditorInput());
+ validateState(getEditorInput());
performSave(false, progressMonitor);
}
}

Back to the top