summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp')
-rw-r--r--Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp15
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();