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

Reply via email to