From: alexis.menard@openbossa.org Date: Mon, 11 Apr 2011 19:14:10 +0000 (+0000) Subject: 2011-04-11 Alexis Menard X-Git-Url: http://git.webkit.org/?p=WebKit-https.git;a=commitdiff_plain;h=e45bfe7aa073bd2460a70ef8674ff7580ff3487a 2011-04-11 Alexis Menard 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 --- diff --git a/Source/WebKit/qt/ChangeLog b/Source/WebKit/qt/ChangeLog index 09cde59..4afb59f 100644 --- a/Source/WebKit/qt/ChangeLog +++ b/Source/WebKit/qt/ChangeLog @@ -1,3 +1,19 @@ +2011-04-11 Alexis Menard + + 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 Reviewed by Andreas Kling. diff --git a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp index fcddb89..ea2c826 100644 --- a/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp +++ b/Source/WebKit/qt/WebCoreSupport/ChromeClientQt.cpp @@ -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)