diff options
Diffstat (limited to 'Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp')
| -rw-r--r-- | Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp b/Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp index aa32b6a09..2b42477b0 100644 --- a/Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp +++ b/Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp @@ -54,6 +54,7 @@ PageOverlay::PageOverlay(Client* client) , m_fadeAnimationDuration(fadeAnimationDuration) , m_fadeAnimationType(NoAnimation) , m_fractionFadedIn(1.0) + , m_pageOverlayShouldApplyFadeWhenPainting(true) { } @@ -83,13 +84,19 @@ void PageOverlay::setPage(WebPage* webPage) m_webPage = webPage; m_client->didMoveToWebPage(this, webPage); + if (m_webPage) + m_pageOverlayShouldApplyFadeWhenPainting = m_webPage->drawingArea()->pageOverlayShouldApplyFadeWhenPainting(); + m_fadeAnimationTimer.stop(); } void PageOverlay::setNeedsDisplay(const IntRect& dirtyRect) { - if (m_webPage) + if (m_webPage) { + if (!m_pageOverlayShouldApplyFadeWhenPainting) + m_webPage->drawingArea()->setPageOverlayOpacity(m_fractionFadedIn); m_webPage->drawingArea()->setPageOverlayNeedsDisplay(dirtyRect); + } } void PageOverlay::setNeedsDisplay() @@ -157,7 +164,11 @@ void PageOverlay::fadeAnimationTimerFired() float fadeAnimationValue = sine * sine; m_fractionFadedIn = (m_fadeAnimationType == FadeInAnimation) ? fadeAnimationValue : 1 - fadeAnimationValue; - setNeedsDisplay(); + + if (m_pageOverlayShouldApplyFadeWhenPainting) + setNeedsDisplay(); + else + m_webPage->drawingArea()->setPageOverlayOpacity(m_fractionFadedIn); if (animationProgress == 1.0) { m_fadeAnimationTimer.stop(); |
