SVN commit 1095343 by ggarand: automatically merged revision 1088982: don't allow any synchronous update of scrollbars during layout M +8 -1 render_layer.cpp M +2 -1 render_layer.h --- branches/KDE/4.4/kdelibs/khtml/rendering/render_layer.cpp #1095342:1095343 @@ -75,7 +75,14 @@ void RenderScrollMediator::slotValueChanged() { - m_layer->updateScrollPositionFromScrollbars(); + if ( m_layer->renderer()->canvas()->isPerformingLayout() ) { + if (!m_waitingForUpdate) + QTimer::singleShot(0, this, SLOT(slotValueChanged())); + m_waitingForUpdate = true; + } else { + m_waitingForUpdate = false; + m_layer->updateScrollPositionFromScrollbars(); + } } RenderLayer::RenderLayer(RenderObject* object) --- branches/KDE/4.4/kdelibs/khtml/rendering/render_layer.h #1095342:1095343 @@ -62,13 +62,14 @@ Q_OBJECT public: RenderScrollMediator(RenderLayer* layer) - :m_layer(layer) {} + :m_layer(layer), m_waitingForUpdate(false) {} public Q_SLOTS: void slotValueChanged(); private: RenderLayer* m_layer; + bool m_waitingForUpdate; }; // This class handles the auto-scrolling of layers with overflow: marquee.