commit 294969c6a2ba456c231e52d79b4637cdd50a6a95
Author: Jean-Marc Lasgouttes <[email protected]>
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);
                }
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to