]> git.lyx.org Git - features.git/commitdiff
Scrollbar fixes
authorMartin Vermeer <martin.vermeer@hut.fi>
Tue, 2 Aug 2005 14:25:48 +0000 (14:25 +0000)
committerMartin Vermeer <martin.vermeer@hut.fi>
Tue, 2 Aug 2005 14:25:48 +0000 (14:25 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10382 a592a061-630c-0410-9148-cb99ea01b6c8

src/BufferView_pimpl.C
src/ChangeLog
src/frontends/ChangeLog
src/frontends/LyXView.C

index 4ff3e93b293df92569d2bf73f3afa548e6207a4a..0934b425683501ae599c593fa9f88ca99c3daa38 100644 (file)
@@ -440,9 +440,22 @@ void BufferView::Pimpl::updateScrollbar()
 
        // It would be better to fix the scrollbar to understand
        // values in [0..1] and divide everything by wh
-       int const wh = workarea().workHeight() / 4;
-       int const h = t.getPar(anchor_ref_).height();
-       workarea().setScrollbarParams(t.paragraphs().size() * wh, anchor_ref_ * wh + int(offset_ref_ * wh / float(h)), int (wh * defaultRowHeight() / float(h)));
+
+       // estimated average paragraph height:
+       int const wh = workarea().workHeight() / 4; 
+       int h = t.getPar(anchor_ref_).height();
+       // Normalize anchor/offset (MV):
+       while (offset_ref_ > h) {
+               anchor_ref_++;
+               offset_ref_ -= h;
+               h = t.getPar(anchor_ref_).height();
+       }
+       
+       // The "+ 2" makes inoculates doc bottom display against
+       // unrealistic wh values (docs with very large paragraphs) (MV)
+       workarea().setScrollbarParams((t.paragraphs().size() + 2) * wh, 
+               anchor_ref_ * wh + int(offset_ref_ * wh / float(h)), 
+               int(wh * defaultRowHeight() / float(h)));
 //     workarea().setScrollbarParams(t.paragraphs().size(), anchor_ref_, 1);
 }
 
index add609644eb8f3048528e386512583f389b0be39..d8fa7f67628b3632b22557260b13a1d1d9dfbea5 100644 (file)
@@ -1,3 +1,7 @@
+2005-08-02  Martin Vermeer  <martin.vermeer@hut.fi>
+
+       * BufferView_pimpl.C (updateScrollbar): scrollbar fixes
+
 2005-07-27  Jürgen Spitzmüller  <j.spitzmueller@gmx.de>
 
        * text.C (insertChar):
index 8b164f4c9acc1e5dd5d6fca9aeb802b5758c0f3c..c361894bf670110bf7793d856a7bcbdaa4c3a864 100644 (file)
@@ -1,3 +1,7 @@
+2005-08-02  Martin Vermeer  <martin.vermeer@hut.fi>
+
+       * LyXView.C (updateInset): scroll bar fix
+
 2005-05-31  Martin Vermeer  <martin.vermeer@hut.fi>
 
        * screen.[hC]: better fix, processEvents -related screen update
index 48c4e4df9942e68339fb6eb5601658304769c828..56a7e410ce9e13b86f8a41315da8dccb5520893c 100644 (file)
@@ -208,7 +208,8 @@ Buffer const * const LyXView::updateInset(InsetBase const * inset) const
        Buffer const * buffer_ptr = 0;
        if (inset) {
                buffer_ptr = bufferview_->buffer();
-               bufferview_->update();
+               // No FitCursor:
+               bufferview_->update(Update::Force);
        }
        return buffer_ptr;
 }