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());
}