]> git.lyx.org Git - lyx.git/blobdiff - src/BufferView_pimpl.C
Fix broken changes of wheel mouse. Sorry !
[lyx.git] / src / BufferView_pimpl.C
index 36b457694f4eb61e7f5646d2e817fb40cee6e764..2f4848f6a26f47929fb957b5495823bdbed27ce5 100644 (file)
@@ -384,19 +384,26 @@ void BufferView::Pimpl::scrollDocView(int value)
 }
 
 
-int BufferView::Pimpl::scroll(long time)
+void BufferView::Pimpl::scroll(int lines)
 {
-       if (!buffer_)
-               return 0;
+       if (!buffer_) {
+               return;
+       }
 
        LyXText const * t = bv_->text;
+       int const line_height = t->defaultHeight();
 
-       double const diff = t->defaultHeight()
-               + double(time) * double(time) * 0.125;
+       // The new absolute coordinate
+       int new_first_y = t->first_y + lines * line_height;
 
-       scrollDocView(int(diff));
+       // Restrict to a valid value
+       new_first_y = std::min(t->height - 4 * line_height, new_first_y);
+       new_first_y = std::max(0, new_first_y);
+
+       scrollDocView(new_first_y);
+
+       // Update the scrollbar.
        workarea().setScrollbarParams(t->height, t->first_y, t->defaultHeight());
-       return 0;
 }