Title: [145185] trunk/Source/WebKit2
- Revision
- 145185
- Author
- commit-qu...@webkit.org
- Date
- 2013-03-07 23:30:02 -0800 (Thu, 07 Mar 2013)
Log Message
[EFL] EwkView should keep css position instead of scroll position in device pixel.
https://bugs.webkit.org/show_bug.cgi?id=110847
Patch by Huang Dongsung <luxte...@company100.net> on 2013-03-07
Reviewed by Kenneth Rohde Christiansen.
Signed off for WebKit2 by Benjamin Poulain.
There are bugs that some code expect that EwkView::pagePosition() returns css
position while others expect that it returns scroll position in device pixel.
In addition, some code call EwkView::setPagePosition() with css position while
others call it with scroll position in device pixel.
This patch makes all code use setPagePosition() and pagePosition() with
UI pixels (a.k.a Density Independent Pixel).
* UIProcess/efl/PageViewportControllerClientEfl.cpp:
(WebKit::PageViewportControllerClientEfl::setViewportPosition):
* UIProcess/efl/WebView.cpp:
(WebKit::WebView::paintToCairoSurface):
(WebKit::WebView::updateViewportSize):
(WebKit::WebView::transformToScene):
(WebKit::WebView::pageDidRequestScroll):
Modified Paths
Diff
Modified: trunk/Source/WebKit2/ChangeLog (145184 => 145185)
--- trunk/Source/WebKit2/ChangeLog 2013-03-08 07:17:30 UTC (rev 145184)
+++ trunk/Source/WebKit2/ChangeLog 2013-03-08 07:30:02 UTC (rev 145185)
@@ -1,3 +1,28 @@
+2013-03-07 Huang Dongsung <luxte...@company100.net>
+
+ [EFL] EwkView should keep css position instead of scroll position in device pixel.
+ https://bugs.webkit.org/show_bug.cgi?id=110847
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ Signed off for WebKit2 by Benjamin Poulain.
+
+ There are bugs that some code expect that EwkView::pagePosition() returns css
+ position while others expect that it returns scroll position in device pixel.
+ In addition, some code call EwkView::setPagePosition() with css position while
+ others call it with scroll position in device pixel.
+
+ This patch makes all code use setPagePosition() and pagePosition() with
+ UI pixels (a.k.a Density Independent Pixel).
+
+ * UIProcess/efl/PageViewportControllerClientEfl.cpp:
+ (WebKit::PageViewportControllerClientEfl::setViewportPosition):
+ * UIProcess/efl/WebView.cpp:
+ (WebKit::WebView::paintToCairoSurface):
+ (WebKit::WebView::updateViewportSize):
+ (WebKit::WebView::transformToScene):
+ (WebKit::WebView::pageDidRequestScroll):
+
2013-03-07 Alexey Proskuryakov <a...@apple.com>
https://bugs.webkit.org/show_bug.cgi?id=111801
Modified: trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp (145184 => 145185)
--- trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp 2013-03-08 07:17:30 UTC (rev 145184)
+++ trunk/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp 2013-03-08 07:30:02 UTC (rev 145185)
@@ -52,7 +52,6 @@
FloatPoint pos(contentsPoint);
pos.scale(m_view->pageScaleFactor(), m_view->pageScaleFactor());
- pos.scale(m_view->deviceScaleFactor(), m_view->deviceScaleFactor());
m_view->setPagePosition(pos);
m_controller->didChangeContentsVisibility(m_contentPosition, m_view->pageScaleFactor());
Modified: trunk/Source/WebKit2/UIProcess/efl/WebView.cpp (145184 => 145185)
--- trunk/Source/WebKit2/UIProcess/efl/WebView.cpp 2013-03-08 07:17:30 UTC (rev 145184)
+++ trunk/Source/WebKit2/UIProcess/efl/WebView.cpp 2013-03-08 07:30:02 UTC (rev 145185)
@@ -117,7 +117,7 @@
const FloatPoint& pagePosition = m_ewkView->pagePosition();
double effectiveScale = m_page->deviceScaleFactor() * m_ewkView->pageScaleFactor();
- cairo_matrix_t transform = { effectiveScale, 0, 0, effectiveScale, - pagePosition.x(), - pagePosition.y() };
+ cairo_matrix_t transform = { effectiveScale, 0, 0, effectiveScale, -pagePosition.x() * m_page->deviceScaleFactor(), -pagePosition.y() * m_page->deviceScaleFactor() };
cairo_set_matrix(context.cr(), &transform);
scene->paintToGraphicsContext(&context);
@@ -200,7 +200,9 @@
m_ewkView->pageViewportController()->didChangeViewportSize(m_ewkView->size());
return;
}
- m_page->drawingArea()->setVisibleContentsRect(FloatRect(m_ewkView->pagePosition(), m_ewkView->size()), FloatPoint());
+ FloatPoint uiPosition(m_ewkView->pagePosition());
+ uiPosition.scale(1 / m_ewkView->pageScaleFactor(), 1 / m_ewkView->pageScaleFactor());
+ m_page->drawingArea()->setVisibleContentsRect(FloatRect(uiPosition, m_ewkView->size()), FloatPoint());
}
void WebView::didChangeContentsSize(const WebCore::IntSize& size)
@@ -218,8 +220,8 @@
TransformationMatrix transform = m_userViewportTransform;
const FloatPoint& pagePosition = m_ewkView->pagePosition();
+ transform.scale(m_page->deviceScaleFactor());
transform.translate(-pagePosition.x(), -pagePosition.y());
- transform.scale(m_page->deviceScaleFactor());
transform.scale(m_ewkView->pageScaleFactor());
return transform.toAffineTransform();
@@ -493,7 +495,9 @@
m_ewkView->pageViewportController()->pageDidRequestScroll(position);
return;
}
- m_ewkView->setPagePosition(FloatPoint(position));
+ FloatPoint uiPosition(position);
+ uiPosition.scale(m_ewkView->pageScaleFactor(), m_ewkView->pageScaleFactor());
+ m_ewkView->setPagePosition(uiPosition);
m_ewkView->scheduleUpdateDisplay();
}
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes