[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/khtml/rendering
From:       Germain Garand <germain () ebooksfrance ! org>
Date:       2010-02-12 4:20:50
Message-ID: 1265948450.986725.11095.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1088982 by ggarand:

don't allow any synchronous update of scrollbars during layout

BUG: 225936

 M  +8 -1      render_layer.cpp  
 M  +2 -1      render_layer.h  


--- trunk/KDE/kdelibs/khtml/rendering/render_layer.cpp #1088981:1088982
@@ -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)
--- trunk/KDE/kdelibs/khtml/rendering/render_layer.h #1088981:1088982
@@ -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.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic