aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r--src/Editor.cxx52
1 files changed, 26 insertions, 26 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 678f2e927..a1099790c 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -608,6 +608,10 @@ void Editor::InvalidateSelection(SelectionRange newMain, bool invalidateWholeSel
InvalidateRange(firstAffected, lastAffected);
}
+void Editor::InvalidateWholeSelection() {
+ InvalidateSelection(sel.RangeMain(), true);
+}
+
void Editor::SetSelection(SelectionPosition currentPos_, SelectionPosition anchor_) {
currentPos_ = ClampPositionIntoDocument(currentPos_);
anchor_ = ClampPositionIntoDocument(anchor_);
@@ -799,9 +803,9 @@ SelectionPosition Editor::MovePositionOutsideChar(SelectionPosition pos, int mov
return pos;
}
-int Editor::MovePositionTo(SelectionPosition newPos, Selection::selTypes selt, bool ensureVisible) {
- bool simpleCaret = (sel.Count() == 1) && sel.Empty();
- SelectionPosition spCaret = sel.Last();
+void Editor::MovePositionTo(SelectionPosition newPos, Selection::selTypes selt, bool ensureVisible) {
+ const bool simpleCaret = (sel.Count() == 1) && sel.Empty();
+ const SelectionPosition spCaret = sel.Last();
int delta = newPos.Position() - sel.MainCaret();
newPos = ClampPositionIntoDocument(newPos);
@@ -809,8 +813,7 @@ int Editor::MovePositionTo(SelectionPosition newPos, Selection::selTypes selt, b
if (!multipleSelection && sel.IsRectangular() && (selt == Selection::selStream)) {
// Can't turn into multiple selection so clear additional selections
InvalidateSelection(SelectionRange(newPos), true);
- SelectionRange rangeMain = sel.RangeMain();
- sel.SetSelection(rangeMain);
+ sel.DropAdditionalRanges();
}
if (!sel.IsRectangular() && (selt == Selection::selRectangle)) {
// Switching to rectangular
@@ -829,7 +832,7 @@ int Editor::MovePositionTo(SelectionPosition newPos, Selection::selTypes selt, b
}
ShowCaretAtCurrentPosition();
- int currentLine = pdoc->LineFromPosition(newPos.Position());
+ const int currentLine = pdoc->LineFromPosition(newPos.Position());
if (ensureVisible) {
// In case in need of wrapping to ensure DisplayFromDoc works.
if (currentLine >= wrapPending.start)
@@ -848,11 +851,10 @@ int Editor::MovePositionTo(SelectionPosition newPos, Selection::selTypes selt, b
if (marginView.highlightDelimiter.NeedsDrawing(currentLine)) {
RedrawSelMargin();
}
- return 0;
}
-int Editor::MovePositionTo(int newPos, Selection::selTypes selt, bool ensureVisible) {
- return MovePositionTo(SelectionPosition(newPos), selt, ensureVisible);
+void Editor::MovePositionTo(int newPos, Selection::selTypes selt, bool ensureVisible) {
+ MovePositionTo(SelectionPosition(newPos), selt, ensureVisible);
}
SelectionPosition Editor::MovePositionSoVisible(SelectionPosition pos, int moveDir) {
@@ -1833,9 +1835,8 @@ void Editor::AddChar(char ch) {
void Editor::FilterSelections() {
if (!additionalSelectionTyping && (sel.Count() > 1)) {
- SelectionRange rangeOnly = sel.RangeMain();
- InvalidateSelection(rangeOnly, true);
- sel.SetSelection(rangeOnly);
+ InvalidateWholeSelection();
+ sel.DropAdditionalRanges();
}
}
@@ -2952,8 +2953,8 @@ void Editor::CancelModes() {
void Editor::NewLine() {
// Remove non-main ranges
- InvalidateSelection(sel.RangeMain(), true);
- sel.SetSelection(sel.RangeMain());
+ InvalidateWholeSelection();
+ sel.DropAdditionalRanges();
sel.RangeMain().ClearVirtualSpace();
// Clear main range and insert line end
@@ -3078,7 +3079,7 @@ int Editor::StartEndDisplayLine(int pos, bool start) {
int Editor::KeyCommand(unsigned int iMessage) {
switch (iMessage) {
case SCI_LINEDOWN:
- CursorUpOrDown(1);
+ CursorUpOrDown(1, Selection::noSel);
break;
case SCI_LINEDOWNEXTEND:
CursorUpOrDown(1, Selection::selStream);
@@ -3087,7 +3088,7 @@ int Editor::KeyCommand(unsigned int iMessage) {
CursorUpOrDown(1, Selection::selRectangle);
break;
case SCI_PARADOWN:
- ParaUpOrDown(1);
+ ParaUpOrDown(1, Selection::noSel);
break;
case SCI_PARADOWNEXTEND:
ParaUpOrDown(1, Selection::selStream);
@@ -3097,7 +3098,7 @@ int Editor::KeyCommand(unsigned int iMessage) {
MoveCaretInsideView(false);
break;
case SCI_LINEUP:
- CursorUpOrDown(-1);
+ CursorUpOrDown(-1, Selection::noSel);
break;
case SCI_LINEUPEXTEND:
CursorUpOrDown(-1, Selection::selStream);
@@ -3106,7 +3107,7 @@ int Editor::KeyCommand(unsigned int iMessage) {
CursorUpOrDown(-1, Selection::selRectangle);
break;
case SCI_PARAUP:
- ParaUpOrDown(-1);
+ ParaUpOrDown(-1, Selection::noSel);
break;
case SCI_PARAUPEXTEND:
ParaUpOrDown(-1, Selection::selStream);
@@ -3340,9 +3341,8 @@ int Editor::KeyCommand(unsigned int iMessage) {
CancelModes();
if (sel.Count() > 1) {
// Drop additional selections
- const SelectionRange rangeOnly = sel.RangeMain();
- InvalidateSelection(rangeOnly, true);
- sel.SetSelection(rangeOnly);
+ InvalidateWholeSelection();
+ sel.DropAdditionalRanges();
}
break;
case SCI_DELETEBACK:
@@ -3436,7 +3436,7 @@ int Editor::KeyCommand(unsigned int iMessage) {
break;
case SCI_DELWORDRIGHT: {
UndoGroup ug(pdoc);
- InvalidateSelection(sel.RangeMain(), true);
+ InvalidateWholeSelection();
sel.RangeMain().caret = SelectionPosition(
InsertSpace(sel.RangeMain().caret.Position(), sel.RangeMain().caret.VirtualSpace()));
sel.RangeMain().anchor = sel.RangeMain().caret;
@@ -3446,7 +3446,7 @@ int Editor::KeyCommand(unsigned int iMessage) {
break;
case SCI_DELWORDRIGHTEND: {
UndoGroup ug(pdoc);
- InvalidateSelection(sel.RangeMain(), true);
+ InvalidateWholeSelection();
sel.RangeMain().caret = SelectionPosition(
InsertSpace(sel.RangeMain().caret.Position(), sel.RangeMain().caret.VirtualSpace()));
int endWord = pdoc->NextWordEnd(sel.MainCaret(), 1);
@@ -4611,7 +4611,7 @@ void Editor::ButtonUp(Point pt, unsigned int curTime, bool ctrl) {
if (sel.Count() > 1) {
sel.RangeMain() =
SelectionRange(newPos, sel.Range(sel.Count() - 1).anchor);
- InvalidateSelection(sel.RangeMain(), true);
+ InvalidateWholeSelection();
} else {
SetSelection(newPos, sel.RangeMain().anchor);
}
@@ -7203,7 +7203,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
sel.SetMoveExtends(!sel.MoveExtends() || (sel.selType != Selection::selStream));
sel.selType = Selection::selStream;
}
- InvalidateSelection(sel.RangeMain(), true);
+ InvalidateWholeSelection();
break;
}
case SCI_GETSELECTIONMODE:
@@ -7695,7 +7695,7 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
case SCI_ROTATESELECTION:
sel.RotateMain();
- InvalidateSelection(sel.RangeMain(), true);
+ InvalidateWholeSelection();
break;
case SCI_SWAPMAINANCHORCARET: