[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

aroben at apple.com aroben at apple.com
Thu Oct 29 20:34:13 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit 558622d4ce6aa9bbd7819b1485bbccea206e0a54
Author: aroben at apple.com <aroben at apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Fri Sep 25 15:32:41 2009 +0000

    Add SPI to invalidate a WebView's backing store
    
    This is useful in conjunction with
    IWebUIDelegatePrivate2::drawBackground. This provides a way for the UI
    delegate to force WebView to get its background redrawn.
    
    Fixes <http://webkit.org/b/29737> Need SPI to invalidate a WebView's
    backing store
    
    Reviewed by Anders Carlsson.
    
    * Interfaces/IWebViewPrivate.idl: Added invalidateBackingStore.
    * WebView.cpp:
    (WebView::invalidateBackingStore): If rect is 0, invalidate our whole
    client rect. Otherwise invalidate the intersection of rect with our
    client rect.
    * WebView.h:
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48754 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit/win/ChangeLog b/WebKit/win/ChangeLog
index 34adfff..5d5a9e2 100644
--- a/WebKit/win/ChangeLog
+++ b/WebKit/win/ChangeLog
@@ -1,3 +1,23 @@
+2009-09-25  Adam Roben  <aroben at apple.com>
+
+        Add SPI to invalidate a WebView's backing store
+
+        This is useful in conjunction with
+        IWebUIDelegatePrivate2::drawBackground. This provides a way for the UI
+        delegate to force WebView to get its background redrawn.
+
+        Fixes <http://webkit.org/b/29737> Need SPI to invalidate a WebView's
+        backing store
+
+        Reviewed by Anders Carlsson.
+
+        * Interfaces/IWebViewPrivate.idl: Added invalidateBackingStore.
+        * WebView.cpp:
+        (WebView::invalidateBackingStore): If rect is 0, invalidate our whole
+        client rect. Otherwise invalidate the intersection of rect with our
+        client rect.
+        * WebView.h:
+
 2009-09-24  Jon Honeycutt  <jhoneycutt at apple.com>
 
         Add a mechanism for automatically halting plug-ins.
diff --git a/WebKit/win/Interfaces/IWebViewPrivate.idl b/WebKit/win/Interfaces/IWebViewPrivate.idl
index dc4e8a7..63897bb 100644
--- a/WebKit/win/Interfaces/IWebViewPrivate.idl
+++ b/WebKit/win/Interfaces/IWebViewPrivate.idl
@@ -188,4 +188,7 @@ interface IWebViewPrivate : IUnknown
 
     HRESULT setPluginHalterDelegate([in] IWebPluginHalterDelegate* d);
     HRESULT pluginHalterDelegate([retval, out] IWebPluginHalterDelegate** d);
+
+    // If rect is 0, the entire backing store will be invalidated.
+    HRESULT invalidateBackingStore([in] const RECT* rect);
 }
diff --git a/WebKit/win/WebView.cpp b/WebKit/win/WebView.cpp
index 817e358..eb3a0f3 100644
--- a/WebKit/win/WebView.cpp
+++ b/WebKit/win/WebView.cpp
@@ -5497,6 +5497,25 @@ HRESULT WebView::removeAllUserContentFromGroup(BSTR groupName)
     return S_OK;
 }
 
+HRESULT WebView::invalidateBackingStore(const RECT* rect)
+{
+    if (!IsWindow(m_viewWindow))
+        return S_OK;
+
+    RECT clientRect;
+    if (!GetClientRect(m_viewWindow, &clientRect))
+        return E_FAIL;
+
+    RECT rectToInvalidate;
+    if (!rect)
+        rectToInvalidate = clientRect;
+    else if (!IntersectRect(&rectToInvalidate, &clientRect, rect))
+        return S_OK;
+
+    repaint(rectToInvalidate, true);
+    return S_OK;
+}
+
 void WebView::downloadURL(const KURL& url)
 {
     // It's the delegate's job to ref the WebDownload to keep it alive - otherwise it will be
diff --git a/WebKit/win/WebView.h b/WebKit/win/WebView.h
index 09c8360..e668d3c 100644
--- a/WebKit/win/WebView.h
+++ b/WebKit/win/WebView.h
@@ -748,6 +748,8 @@ public:
     virtual HRESULT STDMETHODCALLTYPE setPluginHalterDelegate(IWebPluginHalterDelegate*);
     virtual HRESULT STDMETHODCALLTYPE pluginHalterDelegate(IWebPluginHalterDelegate**);
 
+    virtual HRESULT STDMETHODCALLTYPE invalidateBackingStore(const RECT*);
+
     // WebView
     bool shouldUseEmbeddedView(const WebCore::String& mimeType) const;
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list