Ok to apply? (makes qt behave like xforms and do not fire an update on setting the scrollbar value)
Alfredo
Index: QContentPane.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/qt2/QContentPane.C,v retrieving revision 1.26 diff -u -p -u -r1.26 QContentPane.C --- QContentPane.C 21 Sep 2003 16:02:53 -0000 1.26 +++ QContentPane.C 21 Nov 2003 22:39:56 -0000 @@ -76,7 +76,7 @@ mouse_button::state q_motion_state(Qt::B QContentPane::QContentPane(QWorkArea * parent) : QWidget(parent, "content_pane", WRepaintNoErase), - wa_(parent) + wa_(parent), track_scrollbar_(true) { setFocusPolicy(QWidget::WheelFocus); setFocus(); @@ -91,7 +91,8 @@ QContentPane::QContentPane(QWorkArea * p void QContentPane::scrollBarChanged(int val) { - wa_->scrollDocView(val); + if (track_scrollbar_) + wa_->scrollDocView(val); } @@ -193,3 +194,10 @@ void QContentPane::paintEvent(QPaintEven q.drawPixmap(QPoint(r.x(), r.y()), *pixmap_.get(), r); } + + +void QContentPane::trackScrollbar(bool yes) +{ + track_scrollbar_ = yes; +} + Index: QContentPane.h =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/qt2/QContentPane.h,v retrieving revision 1.10 diff -u -p -u -r1.10 QContentPane.h --- QContentPane.h 7 Sep 2003 21:25:34 -0000 1.10 +++ QContentPane.h 21 Nov 2003 22:39:56 -0000 @@ -50,6 +50,9 @@ public: /// return the backing pixmap QPixmap * pixmap() const { return pixmap_.get(); } + /// track scrollbar signals + void trackScrollbar(bool yes); + protected: /// repaint part of the widget void paintEvent(QPaintEvent * e); @@ -73,6 +76,8 @@ public slots: void scrollBarChanged(int); private: + /// + bool track_scrollbar_; /// owning widget QWorkArea * wa_; Index: QWorkArea.C =================================================================== RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/frontends/qt2/QWorkArea.C,v retrieving revision 1.22 diff -u -p -u -r1.22 QWorkArea.C --- QWorkArea.C 6 Oct 2003 15:42:52 -0000 1.22 +++ QWorkArea.C 21 Nov 2003 22:39:56 -0000 @@ -68,7 +68,9 @@ void QWorkArea::setScrollbarParams(int h int max = std::max(0, h - height()); scrollbar_->setRange(0, max); + content_->trackScrollbar(false); scrollbar_->setValue(pos); + content_->trackScrollbar(true); scrollbar_->setLineStep(line_h); scrollbar_->setPageStep(height()); }