Automatic scrolling when dragging text near window edge.

Patch by McLoo from https://sourceforge.net/p/scintilla/feature-requests/497/
This commit is contained in:
RaiKoHoff 2020-02-24 16:04:01 +01:00
parent eb3ce61e4a
commit 2758bf663b

View File

@ -4261,6 +4261,21 @@ void Editor::SetDragPosition(SelectionPosition newPos) {
posDrop = newPos;
}
if (!(posDrag == newPos)) {
// >>>>>>>>>>>>>>> BEG NON STD SCI PATCH >>>>>>>>>>>>>>>
const auto oldCaretYPolicy = caretYPolicy;
const auto oldCaretYSlop = caretYSlop;
const auto oldCaretXPolicy = caretXPolicy;
const auto oldCaretXSlop = caretXSlop;
caretYPolicy = CARET_SLOP | CARET_STRICT | CARET_EVEN;
caretYSlop = 5;
caretXPolicy = CARET_SLOP | CARET_STRICT | CARET_EVEN;
caretXSlop = 50;
MovedCaret(newPos, posDrag, true);
caretYPolicy = oldCaretYPolicy;
caretYSlop = oldCaretYSlop;
caretXPolicy = oldCaretXPolicy;
caretXSlop = oldCaretXSlop;
// <<<<<<<<<<<<<<< END NON STD SCI PATCH <<<<<<<<<<<<<<<
caret.on = true;
FineTickerCancel(tickCaret);
if ((caret.active) && (caret.period > 0) && (newPos.Position() < 0))