2011-04-11 Alexis Menard <alexis.menard@openbossa.org>
authoralexis.menard@openbossa.org <alexis.menard@openbossa.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Apr 2011 19:14:10 +0000 (19:14 +0000)
committeralexis.menard@openbossa.org <alexis.menard@openbossa.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 11 Apr 2011 19:14:10 +0000 (19:14 +0000)
        Reviewed by Kenneth Rohde Christiansen.

        [Qt] Sub-Frame content is not updated when scrolling in certain circumstances
        https://bugs.webkit.org/show_bug.cgi?id=50373

        Make sure that we invalidate the backing store when using TILED_BACKING_STORE
        and the page contains sub frames. This bug appears only when frame flattening is
        disabled and scrollable subframes.

        Original patch from Thomas Thrainer.

        * WebCoreSupport/ChromeClientQt.cpp:
        (WebCore::ChromeClientQt::invalidateWindow):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@83473 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/qt/ChangeLog
Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp

index 09cde59..4afb59f 100644 (file)
@@ -1,3 +1,19 @@
+2011-04-11  Alexis Menard  <alexis.menard@openbossa.org>
+
+        Reviewed by Kenneth Rohde Christiansen.
+
+        [Qt] Sub-Frame content is not updated when scrolling in certain circumstances
+        https://bugs.webkit.org/show_bug.cgi?id=50373
+
+        Make sure that we invalidate the backing store when using TILED_BACKING_STORE
+        and the page contains sub frames. This bug appears only when frame flattening is
+        disabled and scrollable subframes.
+
+        Original patch from Thomas Thrainer.
+
+        * WebCoreSupport/ChromeClientQt.cpp:
+        (WebCore::ChromeClientQt::invalidateWindow):
+
 2011-04-11  Benjamin Poulain  <benjamin.poulain@nokia.com>
 
         Reviewed by Andreas Kling.
index fcddb89..ea2c826 100644 (file)
@@ -399,9 +399,18 @@ IntRect ChromeClientQt::windowResizerRect() const
 #endif
 }
 
-void ChromeClientQt::invalidateWindow(const IntRect&, bool)
+void ChromeClientQt::invalidateWindow(const IntRect& windowRect, bool)
 {
-    notImplemented();
+#if ENABLE(TILED_BACKING_STORE)
+    if (platformPageClient()) {
+        WebCore::TiledBackingStore* backingStore = QWebFramePrivate::core(m_webPage->mainFrame())->tiledBackingStore();
+        if (!backingStore)
+            return;
+        backingStore->invalidate(windowRect);
+    }
+#else
+    Q_UNUSED(windowRect);
+#endif
 }
 
 void ChromeClientQt::invalidateContentsAndWindow(const IntRect& windowRect, bool immediate)