Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDani Megert2008-09-30 11:10:56 +0000
committerDani Megert2008-09-30 11:10:56 +0000
commitb01a80ff1eb977580b1d648df4dbf2186bc46750 (patch)
tree24b1b1c18c7103312332ab068b8968979b1f2630 /org.eclipse.jface.text/projection
parenta2f8878c9fc9e40861614b8090a7f030a597a3a2 (diff)
downloadeclipse.platform.text-b01a80ff1eb977580b1d648df4dbf2186bc46750.tar.gz
eclipse.platform.text-b01a80ff1eb977580b1d648df4dbf2186bc46750.tar.xz
eclipse.platform.text-b01a80ff1eb977580b1d648df4dbf2186bc46750.zip
Fixed bug 67500 (try 2): [projection] Unfolding code eats first keystrokev20080930-0800
Diffstat (limited to 'org.eclipse.jface.text/projection')
-rw-r--r--org.eclipse.jface.text/projection/org/eclipse/jface/text/source/projection/ProjectionViewer.java13
1 files changed, 8 insertions, 5 deletions
diff --git a/org.eclipse.jface.text/projection/org/eclipse/jface/text/source/projection/ProjectionViewer.java b/org.eclipse.jface.text/projection/org/eclipse/jface/text/source/projection/ProjectionViewer.java
index 1dde1e6c2ac..01a22662ce8 100644
--- a/org.eclipse.jface.text/projection/org/eclipse/jface/text/source/projection/ProjectionViewer.java
+++ b/org.eclipse.jface.text/projection/org/eclipse/jface/text/source/projection/ProjectionViewer.java
@@ -1282,15 +1282,18 @@ public class ProjectionViewer extends SourceViewer implements ITextViewerExtensi
* @see org.eclipse.jface.text.TextViewer#handleVerifyEvent(org.eclipse.swt.events.VerifyEvent)
*/
protected void handleVerifyEvent(VerifyEvent e) {
+ Point selection= getSelectedRange();
IRegion modelRange= event2ModelRange(e);
if (exposeModelRange(modelRange)) {
e.doit= false;
- IRegion widgetRange= modelRange2WidgetRange(modelRange);
try {
- int insertOffset= widgetRange.getOffset();
- getDocument().replace(insertOffset, widgetRange.getLength(), e.text);
- int caretOffset= insertOffset + e.text.length();
- getTextWidget().setSelection(caretOffset, caretOffset);
+ if (selection.y == 0 && e.text.length() <= 1 && modelRange.getLength() == 1) {
+ selection.y= 1;
+ if (selection.x - 1 == modelRange.getOffset())
+ selection.x--;
+ }
+ getDocument().replace(selection.x, selection.y, e.text);
+ setSelectedRange(selection.x + e.text.length(), 0);
} catch (BadLocationException e1) {
// ignore as nothing bad happens (no log at this level)
}

Back to the top