[LyX/master] Improve Update::FitCursor when there is a selection
Jean-Marc Lasgouttes
lasgouttes at lyx.org
Tue Jan 7 08:56:28 UTC 2020
commit 294969c6a2ba456c231e52d79b4637cdd50a6a95
Author: Jean-Marc Lasgouttes <lasgouttes at lyx.org>
Date: Mon Jan 6 17:10:38 2020 +0100
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 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 4495093..eda08ed 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);
}
More information about the lyx-cvs
mailing list