summaryrefslogtreecommitdiff
path: root/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp')
-rw-r--r--Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp b/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp
index eb3d007fe..b1a034496 100644
--- a/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/EflViewportHandler.cpp
@@ -53,15 +53,22 @@ DrawingAreaProxy* EflViewportHandler::drawingArea() const
return ewk_view_page_get(m_viewWidget)->drawingArea();
}
-void EflViewportHandler::display(const IntRect& rect)
+void EflViewportHandler::setRendererActive(bool active)
+{
+ drawingArea()->layerTreeCoordinatorProxy()->layerTreeRenderer()->setActive(active);
+}
+
+void EflViewportHandler::display(const IntRect& rect, const IntPoint& viewPosition)
{
WebCore::TransformationMatrix matrix;
- matrix.setMatrix(m_scaleFactor, 0, 0, m_scaleFactor, -m_visibleContentRect.x(), -m_visibleContentRect.y());
+ matrix.setMatrix(m_scaleFactor, 0, 0, m_scaleFactor, -m_visibleContentRect.x() + viewPosition.x(), -m_visibleContentRect.y() + viewPosition.y());
LayerTreeRenderer* renderer = drawingArea()->layerTreeCoordinatorProxy()->layerTreeRenderer();
renderer->setActive(true);
renderer->syncRemoteContent();
- renderer->paintToCurrentGLContext(matrix, 1, rect);
+ IntRect clipRect(rect);
+ clipRect.move(viewPosition.x(), viewPosition.y());
+ renderer->paintToCurrentGLContext(matrix, 1, clipRect);
}
void EflViewportHandler::updateViewportSize(const IntSize& viewportSize)