commit 86d2313ce323fd20fadd63f103625e15704ae527
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Tue Sep 3 15:55:34 2024 +0200

    Simplify greatly Buffer::scroll/Up/Down methods
    
    The code there that checks whether we scroll beyond the top/bottom of
    document is not needed anymore, this is handled later by
    BufferView::update(bool).
    
    Note that this methods may disappear with time.
    
    No change intended.
---
 src/BufferView.cpp | 41 ++---------------------------------------
 1 file changed, 2 insertions(+), 39 deletions(-)

diff --git a/src/BufferView.cpp b/src/BufferView.cpp
index 2a3a9c58c4..0985f6f7f6 100644
--- a/src/BufferView.cpp
+++ b/src/BufferView.cpp
@@ -2848,34 +2848,13 @@ int BufferView::minVisiblePart()
 
 int BufferView::scroll(int pixels)
 {
-       if (pixels > 0)
-               return scrollDown(pixels);
-       if (pixels < 0)
-               return scrollUp(-pixels);
-       return 0;
+       d->anchor_ypos_ -= pixels;
+       return -pixels;
 }
 
 
 int BufferView::scrollDown(int pixels)
 {
-       Text * text = &buffer_.text();
-       TextMetrics & tm = d->text_metrics_[text];
-       int const ymax = height_ + pixels;
-       while (true) {
-               pair<pit_type, ParagraphMetrics const *> last = tm.last();
-               int bottom_pos = last.second->bottom();
-               if (lyxrc.scroll_below_document)
-                       bottom_pos += height_ - minVisiblePart();
-               if (last.first + 1 == int(text->paragraphs().size())) {
-                       if (bottom_pos <= height_)
-                               return 0;
-                       pixels = min(pixels, bottom_pos - height_);
-                       break;
-               }
-               if (bottom_pos > ymax)
-                       break;
-               tm.newParMetricsDown();
-       }
        d->anchor_ypos_ -= pixels;
        return -pixels;
 }
@@ -2883,22 +2862,6 @@ int BufferView::scrollDown(int pixels)
 
 int BufferView::scrollUp(int pixels)
 {
-       Text * text = &buffer_.text();
-       TextMetrics & tm = d->text_metrics_[text];
-       int ymin = - pixels;
-       while (true) {
-               pair<pit_type, ParagraphMetrics const *> first = tm.first();
-               int top_pos = first.second->top();
-               if (first.first == 0) {
-                       if (top_pos >= 0)
-                               return 0;
-                       pixels = min(pixels, - top_pos);
-                       break;
-               }
-               if (top_pos < ymin)
-                       break;
-               tm.newParMetricsUp();
-       }
        d->anchor_ypos_ += pixels;
        return pixels;
 }
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to