summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@digia.com>2013-09-13 12:51:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-09-19 20:50:05 +0200
commitd441d6f39bb846989d95bcf5caf387b42414718d (patch)
treee367e64a75991c554930278175d403c072de6bb8 /Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp
parent0060b2994c07842f4c59de64b5e3e430525c4b90 (diff)
downloadqtwebkit-d441d6f39bb846989d95bcf5caf387b42414718d.tar.gz
Import Qt5x2 branch of QtWebkit for Qt 5.2
Importing a new snapshot of webkit. Change-Id: I2d01ad12cdc8af8cb015387641120a9d7ea5f10c Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com>
Diffstat (limited to 'Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp')
-rw-r--r--Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp b/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp
index 0323698ce..0becc77eb 100644
--- a/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp
+++ b/Source/WebKit2/WebProcess/FullScreen/WebFullScreenManager.cpp
@@ -28,13 +28,14 @@
#if ENABLE(FULLSCREEN_API)
#include "Connection.h"
-#include "MessageID.h"
#include "WebCoreArgumentCoders.h"
+#include "WebFrame.h"
#include "WebFullScreenManagerProxyMessages.h"
#include "WebPage.h"
-#include "WebProcess.h"
#include <WebCore/Color.h>
#include <WebCore/Element.h>
+#include <WebCore/Frame.h>
+#include <WebCore/FrameView.h>
#include <WebCore/Page.h>
#include <WebCore/RenderLayer.h>
#include <WebCore/RenderLayerBacking.h>
@@ -52,7 +53,7 @@ static IntRect screenRectOfContents(Element* element)
#if USE(ACCELERATED_COMPOSITING)
if (element->renderer() && element->renderer()->hasLayer() && element->renderer()->enclosingLayer()->isComposited()) {
FloatQuad contentsBox = static_cast<FloatRect>(element->renderer()->enclosingLayer()->backing()->contentsBox());
- contentsBox = element->renderer()->localToAbsoluteQuad(contentsBox, SnapOffsetForTransforms);
+ contentsBox = element->renderer()->localToAbsoluteQuad(contentsBox);
return element->renderer()->view()->frameView()->contentsToScreen(contentsBox.enclosingBoundingBox());
}
#endif
@@ -78,9 +79,9 @@ WebCore::Element* WebFullScreenManager::element()
return m_element.get();
}
-void WebFullScreenManager::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageID messageID, CoreIPC::MessageDecoder& decoder)
+void WebFullScreenManager::didReceiveMessage(CoreIPC::Connection* connection, CoreIPC::MessageDecoder& decoder)
{
- didReceiveWebFullScreenManagerMessage(connection, messageID, decoder);
+ didReceiveWebFullScreenManagerMessage(connection, decoder);
}
bool WebFullScreenManager::supportsFullScreen(bool withKeyboard)
@@ -108,6 +109,7 @@ void WebFullScreenManager::willEnterFullScreen()
{
ASSERT(m_element);
m_element->document()->webkitWillEnterFullScreenForElement(m_element.get());
+ m_page->hidePageBanners();
m_element->document()->updateLayout();
m_page->forceRepaintWithoutCallback();
m_finalFrame = screenRectOfContents(m_element.get());
@@ -125,6 +127,7 @@ void WebFullScreenManager::willExitFullScreen()
ASSERT(m_element);
m_finalFrame = screenRectOfContents(m_element.get());
m_element->document()->webkitWillExitFullScreenForElement(m_element.get());
+ m_page->showPageBanners();
m_page->injectedBundleFullScreenClient().beganExitFullScreen(m_page.get(), m_finalFrame, m_initialFrame);
}
@@ -151,6 +154,16 @@ void WebFullScreenManager::close()
m_page->injectedBundleFullScreenClient().closeFullScreen(m_page.get());
}
+void WebFullScreenManager::saveScrollPosition()
+{
+ m_scrollPosition = m_page->corePage()->mainFrame()->view()->scrollPosition();
+}
+
+void WebFullScreenManager::restoreScrollPosition()
+{
+ m_page->corePage()->mainFrame()->view()->setScrollPosition(m_scrollPosition);
+}
+
} // namespace WebKit
#endif // ENABLE(FULLSCREEN_API)