From 294969c6a2ba456c231e52d79b4637cdd50a6a95 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Mon, 6 Jan 2020 17:10:38 +0100 Subject: [PATCH] Improve Update::FitCursor when there is a selection It is better indeed to try to make the whole selection fit on screen. Fixes bug #11012. --- src/BufferView.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/BufferView.cpp b/src/BufferView.cpp index 4495093cf2..eda08ed6f9 100644 --- a/src/BufferView.cpp +++ b/src/BufferView.cpp @@ -527,7 +527,13 @@ void BufferView::processUpdateFlags(Update::flags flags) // Then make sure that the screen contains the cursor if needed if (flags & Update::FitCursor) { if (needsFitCursor()) { - scrollToCursor(d->cursor_, false); + // First try to make the selection start visible + // (which is just the cursor when there is no selection) + scrollToCursor(d->cursor_.selectionBegin(), false); + // Is the cursor visible? (only useful if cursor is at end of selection) + if (needsFitCursor()) + // then try to make cursor visible instead + scrollToCursor(d->cursor_, false); // Metrics have to be recomputed (maybe again) updateMetrics(flags); }