2008-01-07 Jon Honeycutt <jhoneycutt@apple.com>
authorjhoneycutt@apple.com <jhoneycutt@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 8 Jan 2008 01:37:21 +0000 (01:37 +0000)
committerjhoneycutt@apple.com <jhoneycutt@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 8 Jan 2008 01:37:21 +0000 (01:37 +0000)
commita3f495cd600e13800d9c77e2f1aa8bcda2272ebf
tree57f65085b8bb6364406cd5fa0a26e5ed004defd7
parentc11d4af29bc66bd94827d32235b88fae686688b5
2008-01-07  Jon Honeycutt  <jhoneycutt@apple.com>

        Reviewed by Hyatt.

        <rdar://problem/5673489> Safari does not render windowless plugins in an
        iframe when opacity < 1.0

        Plugins in transparency layers handle their own world transforms, so
        only apply the horizontal/vertical transform if we are not in a
        transparency layer.

        * platform/graphics/GraphicsContext.h: Add a Windows-platform-only
        inTransparencyLayer() function
        * platform/win/GraphicsContextWin.cpp:
        (WebCore::GraphicsContext::getWindowsContext): Use inTransparencyLayer()
        (WebCore::GraphicsContext::inTransparencyLayer):
        (WebCore::GraphicsContext::releaseWindowsContext): Use
        inTransparencyLayer()
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginViewWin::paint): When retrieving the HDC, use the rect
        relative to the window. Pass m_isTransparent to
        get/releaseWindowsContext(). Only set the world transform if we are not
        in a transparency layer.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@29270 268f45cc-cd09-0410-ab3c-d52691b4dbfc
WebCore/ChangeLog
WebCore/platform/graphics/GraphicsContext.h
WebCore/platform/win/GraphicsContextWin.cpp
WebCore/plugins/win/PluginViewWin.cpp