aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorMcLoo <unknown>2020-02-21 02:15:24 +0100
committerMcLoo <unknown>2020-02-21 02:15:24 +0100
commita6cef65c0713b7bb55315a0d4f1cfd83f90bf3c1 (patch)
tree69e5ebea596c553c6be9c2764445f55da568d683 /src
parent59cf5d189985e5e751d0bcac34003ee1c8d6a138 (diff)
downloadscintilla-mirror-a6cef65c0713b7bb55315a0d4f1cfd83f90bf3c1.tar.gz
Backport: Feature [feature-requests:497] Automatically scroll while dragging text.
Added automatic scrolling when text dragged near edge of window. Backport of changeset 7989:e98f6731bd39.
Diffstat (limited to 'src')
-rw-r--r--src/Editor.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx
index 5da9f2b75..1256082ed 100644
--- a/src/Editor.cxx
+++ b/src/Editor.cxx
@@ -4257,6 +4257,20 @@ void Editor::SetDragPosition(SelectionPosition newPos) {
posDrop = newPos;
}
if (!(posDrag == newPos)) {
+ const int oldCaretYPolicy = caretYPolicy;
+ const int oldCaretYSlop = caretYSlop;
+ const int oldCaretXPolicy = caretXPolicy;
+ const int oldCaretXSlop = caretXSlop;
+ caretYPolicy = CARET_SLOP | CARET_STRICT | CARET_EVEN;
+ caretYSlop = 2;
+ caretXPolicy = CARET_SLOP | CARET_STRICT | CARET_EVEN;
+ caretXSlop = 50;
+ MovedCaret(newPos, posDrag, true);
+ caretYPolicy = oldCaretYPolicy;
+ caretYSlop = oldCaretYSlop;
+ caretXPolicy = oldCaretXPolicy;
+ caretXSlop = oldCaretXSlop;
+
caret.on = true;
FineTickerCancel(tickCaret);
if ((caret.active) && (caret.period > 0) && (newPos.Position() < 0))