[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