| Differences between
and this patch
- a/Source/WebKit2/ChangeLog +23 lines
Lines 1-3 a/Source/WebKit2/ChangeLog_sec1
1
2013-03-04  Huang Dongsung  <luxtella@company100.net>
2
3
        [EFL] EwkView should keep css position instead of scroll position in device pixel.
4
        https://bugs.webkit.org/show_bug.cgi?id=110847
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        There are bugs that some code expect that EwkView::pagePosition() returns css
9
        position while others expect that it returns scroll position in device pixel.
10
        In addition, some code call EwkView::setPagePosition() with css position while
11
        others call it with scroll position in device pixel.
12
13
        This patch makes all code use setPagePosition() and pagePosition() with
14
        UI pixels (a.k.a Density Independent Pixel).
15
16
        * UIProcess/efl/PageViewportControllerClientEfl.cpp:
17
        (WebKit::PageViewportControllerClientEfl::setViewportPosition):
18
        * UIProcess/efl/WebView.cpp:
19
        (WebKit::WebView::paintToCairoSurface):
20
        (WebKit::WebView::updateViewportSize):
21
        (WebKit::WebView::transformToScene):
22
        (WebKit::WebView::pageDidRequestScroll):
23
1
2013-02-25  Huang Dongsung  <luxtella@company100.net>
24
2013-02-25  Huang Dongsung  <luxtella@company100.net>
2
25
3
        [EFL][WK2] Convert from native view size to dip view size only in EwkView.
26
        [EFL][WK2] Convert from native view size to dip view size only in EwkView.
- a/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp -1 lines
Lines 52-58 void PageViewportControllerClientEfl::setViewportPosition(const WebCore::FloatPo a/Source/WebKit2/UIProcess/efl/PageViewportControllerClientEfl.cpp_sec1
52
52
53
    FloatPoint pos(contentsPoint);
53
    FloatPoint pos(contentsPoint);
54
    pos.scale(m_view->pageScaleFactor(), m_view->pageScaleFactor());
54
    pos.scale(m_view->pageScaleFactor(), m_view->pageScaleFactor());
55
    pos.scale(m_view->deviceScaleFactor(), m_view->deviceScaleFactor());
56
    m_view->setPagePosition(pos);
55
    m_view->setPagePosition(pos);
57
56
58
    m_controller->didChangeContentsVisibility(m_contentPosition, m_view->pageScaleFactor());
57
    m_controller->didChangeContentsVisibility(m_contentPosition, m_view->pageScaleFactor());
- a/Source/WebKit2/UIProcess/efl/WebView.cpp -4 / +8 lines
Lines 117-123 void WebView::paintToCairoSurface(cairo_surface_t* surface) a/Source/WebKit2/UIProcess/efl/WebView.cpp_sec1
117
    const FloatPoint& pagePosition = m_ewkView->pagePosition();
117
    const FloatPoint& pagePosition = m_ewkView->pagePosition();
118
    double effectiveScale = m_page->deviceScaleFactor() * m_ewkView->pageScaleFactor();
118
    double effectiveScale = m_page->deviceScaleFactor() * m_ewkView->pageScaleFactor();
119
119
120
    cairo_matrix_t transform = { effectiveScale, 0, 0, effectiveScale, - pagePosition.x(), - pagePosition.y() };
120
    cairo_matrix_t transform = { effectiveScale, 0, 0, effectiveScale, -pagePosition.x() * m_page->deviceScaleFactor(), -pagePosition.y() * m_page->deviceScaleFactor() };
121
    cairo_set_matrix(context.cr(), &transform);
121
    cairo_set_matrix(context.cr(), &transform);
122
122
123
    scene->paintToGraphicsContext(&context);
123
    scene->paintToGraphicsContext(&context);
Lines 200-206 void WebView::updateViewportSize() a/Source/WebKit2/UIProcess/efl/WebView.cpp_sec2
200
        m_ewkView->pageViewportController()->didChangeViewportSize(m_ewkView->size());
200
        m_ewkView->pageViewportController()->didChangeViewportSize(m_ewkView->size());
201
        return;
201
        return;
202
    }
202
    }
203
    m_page->drawingArea()->setVisibleContentsRect(FloatRect(m_ewkView->pagePosition(), m_ewkView->size()), FloatPoint());
203
    FloatPoint uiPosition(m_ewkView->pagePosition());
204
    uiPosition.scale(1 / m_ewkView->pageScaleFactor(), 1 / m_ewkView->pageScaleFactor());
205
    m_page->drawingArea()->setVisibleContentsRect(FloatRect(uiPosition, m_ewkView->size()), FloatPoint());
204
}
206
}
205
207
206
void WebView::didChangeContentsSize(const WebCore::IntSize& size)
208
void WebView::didChangeContentsSize(const WebCore::IntSize& size)
Lines 222-229 AffineTransform WebView::transformToScene() const a/Source/WebKit2/UIProcess/efl/WebView.cpp_sec3
222
    TransformationMatrix transform = m_userViewportTransform;
224
    TransformationMatrix transform = m_userViewportTransform;
223
225
224
    const FloatPoint& pagePosition = m_ewkView->pagePosition();
226
    const FloatPoint& pagePosition = m_ewkView->pagePosition();
225
    transform.translate(-pagePosition.x(), -pagePosition.y());
226
    transform.scale(m_page->deviceScaleFactor());
227
    transform.scale(m_page->deviceScaleFactor());
228
    transform.translate(-pagePosition.x(), -pagePosition.y());
227
    transform.scale(m_ewkView->pageScaleFactor());
229
    transform.scale(m_ewkView->pageScaleFactor());
228
230
229
    return transform.toAffineTransform();
231
    return transform.toAffineTransform();
Lines 517-523 void WebView::pageDidRequestScroll(const IntPoint& position) a/Source/WebKit2/UIProcess/efl/WebView.cpp_sec4
517
        m_ewkView->pageViewportController()->pageDidRequestScroll(position);
519
        m_ewkView->pageViewportController()->pageDidRequestScroll(position);
518
        return;
520
        return;
519
    }
521
    }
520
    m_ewkView->setPagePosition(FloatPoint(position));
522
    FloatPoint uiPosition(position);
523
    uiPosition.scale(m_ewkView->pageScaleFactor(), m_ewkView->pageScaleFactor());
524
    m_ewkView->setPagePosition(uiPosition);
521
    m_ewkView->scheduleUpdateDisplay();
525
    m_ewkView->scheduleUpdateDisplay();
522
}
526
}
523
527

Return to Bug 110847