please apply
regards john -- "Way back at the beginning of time around 1970 the first man page was handed down from on high. Every one since is an edited copy." - John Hasler <[EMAIL PROTECTED]>
Index: src/ChangeLog =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/ChangeLog,v retrieving revision 1.644 diff -u -r1.644 ChangeLog --- src/ChangeLog 22 Mar 2002 15:13:35 -0000 1.644 +++ src/ChangeLog 25 Mar 2002 14:57:15 -0000 @@ -1,3 +1,8 @@ +2002-03-25 John Levon <[EMAIL PROTECTED]> + + * BufferView_pimpl.C (updateScrollbar): update on buffer switch + properly + 2002-03-22 Angus Leeming <[EMAIL PROTECTED]> * PrinterParams.h: #include "lyxrc.h" and remove that bloody irritating Index: src/BufferView_pimpl.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/BufferView_pimpl.C,v retrieving revision 1.218 diff -u -r1.218 BufferView_pimpl.C --- src/BufferView_pimpl.C 21 Mar 2002 17:25:06 -0000 1.218 +++ src/BufferView_pimpl.C 25 Mar 2002 14:57:20 -0000 @@ -397,10 +402,8 @@ void BufferView::Pimpl::updateScrollbar() { - /* If the text is smaller than the working area, the scrollbar - * maximum must be the working area height. No scrolling will - * be possible */ if (!bv_->text) { + lyxerr[Debug::GUI] << "no text in updateScrollbar" << endl; workarea_.setScrollbar(0, 1.0); return; } @@ -408,42 +411,36 @@ long const text_height = bv_->text->height; long const work_height = workarea_.height(); + double const lineh = bv_->text->defaultHeight(); + double const slider_size = + (text_height == 0) ? 1.0 : 1.0 / double(text_height); + + lyxerr[Debug::GUI] << "text_height now " << text_height << endl; + lyxerr[Debug::GUI] << "work_height " << work_height << endl; + + /* If the text is smaller than the working area, the scrollbar + * maximum must be the working area height. No scrolling will + * be possible */ if (text_height <= work_height) { + lyxerr[Debug::GUI] << "doc smaller than workarea !" << endl; workarea_.setScrollbarBounds(0.0, 0.0); current_scrollbar_value = bv_->text->first_y; workarea_.setScrollbar(current_scrollbar_value, 1.0); return; } - double const lineh = bv_->text->defaultHeight(); - double const slider_size = - (text_height == 0) ? 1.0 : 1.0 / double(text_height); - - static long old_text_height; - static double old_lineh; - static double old_slider_size; - - if (text_height != old_text_height) { - workarea_.setScrollbarBounds(0.0, - text_height - work_height); - old_text_height = text_height; - } - if (lineh != old_lineh) { - workarea_.setScrollbarIncrements(lineh); - old_lineh = lineh; - } - if (current_scrollbar_value != bv_->text->first_y - || slider_size != old_slider_size) { - current_scrollbar_value = bv_->text->first_y; - workarea_.setScrollbar(current_scrollbar_value, slider_size); - old_slider_size = slider_size; - } + workarea_.setScrollbarBounds(0.0, text_height - work_height); + workarea_.setScrollbarIncrements(lineh); + current_scrollbar_value = bv_->text->first_y; + workarea_.setScrollbar(current_scrollbar_value, slider_size); } // Callback for scrollbar slider void BufferView::Pimpl::scrollCB(double value) { + lyxerr[Debug::GUI] << "scrollCB of " << value << endl; + if (!buffer_) return; current_scrollbar_value = long(value);