From baa6e605fedb7f2394cd155caa9a9b6153169835 Mon Sep 17 00:00:00 2001 From: Neil Date: Sun, 18 Sep 2016 21:34:08 +1000 Subject: Bug [#1861]. Fix caret position from left/right move with rectangular selection. --- doc/ScintillaHistory.html | 4 ++++ src/Editor.cxx | 12 ++++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 5a0641749..f3f495c32 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -530,6 +530,10 @@ matching keywords that have particular prefixes and/or suffixes.
  • + Fix caret position after left or right movement with rectangular selection. + Bug #1861. +
  • +
  • In SciTE, optional prefix argument added to scite.ConstantName method. Bug #1860.
  • diff --git a/src/Editor.cxx b/src/Editor.cxx index bb608d08c..b6e57212b 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -3319,13 +3319,13 @@ int Editor::HorizontalMove(unsigned int iMessage) { sel.selType = Selection::selRectangle; sel.Rectangular() = SelectionRange(spCaret, rangeBase.anchor); SetRectangularRange(); + } else if (sel.IsRectangular()) { + // Not a rectangular extension so switch to stream. + const SelectionPosition selAtLimit = + (NaturalDirection(iMessage) > 0) ? sel.Limits().end : sel.Limits().start; + sel.selType = Selection::selStream; + sel.SetSelection(SelectionRange(selAtLimit)); } else { - if (sel.IsRectangular()) { - // Not a rectangular extension so switch to stream. - SelectionPosition selAtLimit = (NaturalDirection(iMessage) > 0) ? sel.Limits().end : sel.Limits().start; - sel.selType = Selection::selStream; - sel.SetSelection(SelectionRange(selAtLimit)); - } if (!additionalSelectionTyping) { InvalidateWholeSelection(); sel.DropAdditionalRanges(); -- cgit v1.2.3