Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKai Maetzel2004-06-08 12:33:33 +0000
committerKai Maetzel2004-06-08 12:33:33 +0000
commit354f07c510250edecdc9a5f2c02978367901dec5 (patch)
tree3511fd190ed43299e426eae3b8c469671628a145
parent769e900a135d68f43c497d71cc7732ef78a8892e (diff)
downloadeclipse.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.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