2010-08-18 Jessie Berlin <jberlin@apple.com>
authorjberlin@webkit.org <jberlin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Aug 2010 18:16:57 +0000 (18:16 +0000)
committerjberlin@webkit.org <jberlin@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 18 Aug 2010 18:16:57 +0000 (18:16 +0000)
        Reviewed by Adam Roben.

        Bug 44180 - WebView::paint fails to paint a child WebView of a Layered Window.
        https://bugs.webkit.org/show_bug.cgi?id=44180

        Decide to end painting if the m_backingStoreBitmap is null after the call to
        ensureBackingStore() instead of when the rcPaint rect filled by BeginPaint is empty.
        The rcPaint rect filled by BeginPaint is always empty for a child WebView of a Layered
        Window, even if GetUpdateRect and GetUpdateRgn report a non-empty region that needs
        painting.

        * WebView.cpp:
        (WebView::paint):

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

WebKit/win/ChangeLog
WebKit/win/WebView.cpp

index cd0f234..e7944fd 100644 (file)
@@ -1,3 +1,19 @@
+2010-08-18  Jessie Berlin  <jberlin@apple.com>
+
+        Reviewed by Adam Roben.
+
+        Bug 44180 - WebView::paint fails to paint a child WebView of a Layered Window.
+        https://bugs.webkit.org/show_bug.cgi?id=44180
+        
+        Decide to end painting if the m_backingStoreBitmap is null after the call to
+        ensureBackingStore() instead of when the rcPaint rect filled by BeginPaint is empty.
+        The rcPaint rect filled by BeginPaint is always empty for a child WebView of a Layered 
+        Window, even if GetUpdateRect and GetUpdateRgn report a non-empty region that needs
+        painting.
+
+        * WebView.cpp:
+        (WebView::paint):
+
 2010-08-17  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
 
         Reviewed by Darin Adler.
index 6d610a1..98c1023 100644 (file)
@@ -977,7 +977,8 @@ void WebView::paint(HDC dc, LPARAM options)
         windowsToPaint = PaintWebViewAndChildren;
     }
 
-    if (::IsRectEmpty(&rcPaint)) {
+    bool backingStoreCompletelyDirty = ensureBackingStore();
+    if (!m_backingStoreBitmap) {
         if (!dc)
             EndPaint(m_viewWindow, &ps);
         return;
@@ -986,7 +987,6 @@ void WebView::paint(HDC dc, LPARAM options)
     m_paintCount++;
 
     HDC bitmapDC = ::CreateCompatibleDC(hdc);
-    bool backingStoreCompletelyDirty = ensureBackingStore();
     ::SelectObject(bitmapDC, m_backingStoreBitmap->handle());
 
     // Update our backing store if needed.