diff options
author | Kai Maetzel | 2004-06-08 12:33:33 +0000 |
---|---|---|
committer | Kai Maetzel | 2004-06-08 12:33:33 +0000 |
commit | 354f07c510250edecdc9a5f2c02978367901dec5 (patch) | |
tree | 3511fd190ed43299e426eae3b8c469671628a145 | |
parent | 769e900a135d68f43c497d71cc7732ef78a8892e (diff) | |
download | eclipse.platform.text-354f07c510250edecdc9a5f2c02978367901dec5.tar.gz eclipse.platform.text-354f07c510250edecdc9a5f2c02978367901dec5.tar.xz eclipse.platform.text-354f07c510250edecdc9a5f2c02978367901dec5.zip |
#23440, #64996
-rw-r--r-- | org.eclipse.ui.workbench.texteditor/src/org/eclipse/ui/texteditor/AbstractTextEditor.java | 18 |
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); } } |