-
rdar://problem/7270320jhoneycutt@apple.com authored
<rdar://problem/7270314> After halting a transparent PluginView on Windows, the transparency is applied twice JavaScriptCore: Reviewed by Dan Bernstein. * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Export WTF::deleteOwnedPtr(HDC). * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore_debug.def: Ditto. WebCore: Replace use of Frame::nodeImage() with a function that takes a snapshot of a PluginView. Reviewed by Dan Bernstein. * plugins/PluginView.h: Made paintWindowedPluginIntoContext() non-const, as it now calls paintIntoTransformedContext(). Declare paintIntoTransformedContext() and snapshot() for Windows platforms. * plugins/win/PluginViewWin.cpp: (WebCore::PluginView::paintIntoTransformedContext): Paints into the passed HDC without applying any coordinate translations. Code moved from paintWindowedPluginIntoContext() and paint(). Removed the memset() of windowpos in lieu of assignment. (WebCore::PluginView::paintWindowedPluginIntoContext): Code moved to paintIntoTransformedContext(). (WebCore::PluginView::paint): Ditto. (WebCore::PluginView::snapshot): Create a context, and if the plug-in is windowless, translate it so the plug-in will draw at the correct location. Create a bitmap, and select it into the context. Paint the plug-in, and create a BitmapImage from the bitmap. (WebCore::PluginView::halt): Use snapshot(). git-svn-id: http://svn.webkit.org/repository/webkit/trunk@49933 268f45cc-cd09-0410-ab3c-d52691b4dbfc
f8efd04f