Changeset 235529 in webkit


Ignore:
Timestamp:
Aug 30, 2018 3:55:27 PM (6 years ago)
Author:
commit-queue@webkit.org
Message:

[GTK] Touchscreen pinch to zoom should scale the page like other platforms
https://bugs.webkit.org/show_bug.cgi?id=188746

Changes the pinch-to-zoom gesture to magnify/scale the page, rather than zooming in. Also resets this magnification when the zoom level is changed.

Patch by Justin Michaud <justin@justinmichaud.com> on 2018-08-30
Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/WebKitWebView.cpp:

(webkit_web_view_set_zoom_level):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit::PageClientImpl::zoom): Deleted.

  • UIProcess/API/gtk/PageClientImpl.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:
  • UIProcess/gtk/GestureController.cpp:

(WebKit::GestureController::ZoomGesture::handleZoom):
(WebKit::GestureController::ZoomGesture::scaleChanged):

  • UIProcess/gtk/GestureController.h:
Location:
trunk/Source/WebKit
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit/ChangeLog

    r235521 r235529  
     12018-08-30  Justin Michaud  <justin@justinmichaud.com>
     2
     3        [GTK] Touchscreen pinch to zoom should scale the page like other platforms
     4        https://bugs.webkit.org/show_bug.cgi?id=188746
     5
     6        Changes the pinch-to-zoom gesture to magnify/scale the page, rather than zooming in. Also resets this magnification when the zoom level is changed.
     7
     8        Reviewed by Michael Catanzaro.
     9
     10        * UIProcess/API/glib/WebKitWebView.cpp:
     11        (webkit_web_view_set_zoom_level):
     12        * UIProcess/API/gtk/PageClientImpl.cpp:
     13        (WebKit::PageClientImpl::zoom): Deleted.
     14        * UIProcess/API/gtk/PageClientImpl.h:
     15        * UIProcess/API/gtk/WebKitWebViewBase.cpp:
     16        * UIProcess/gtk/GestureController.cpp:
     17        (WebKit::GestureController::ZoomGesture::handleZoom):
     18        (WebKit::GestureController::ZoomGesture::scaleChanged):
     19        * UIProcess/gtk/GestureController.h:
     20
    1212018-08-30  Tim Horton  <timothy_horton@apple.com>
    222
  • trunk/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp

    r234985 r235529  
    31193119
    31203120    auto& page = getPage(webView);
     3121    page.scalePage(1.0, IntPoint()); // Reset page scale when zoom level is changed
    31213122    if (webkit_settings_get_zoom_text_only(webView->priv->settings.get()))
    31223123        page.setTextZoomFactor(zoomLevel);
  • trunk/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp

    r235265 r235529  
    474474#endif
    475475
    476 void PageClientImpl::zoom(double zoomLevel)
    477 {
    478     if (WEBKIT_IS_WEB_VIEW(m_viewWidget)) {
    479         webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(m_viewWidget), zoomLevel);
    480         return;
    481     }
    482 
    483     webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(m_viewWidget))->setPageZoomFactor(zoomLevel);
    484 }
    485 
    486476} // namespace WebKit
  • trunk/Source/WebKit/UIProcess/API/gtk/PageClientImpl.h

    r234816 r235529  
    5353
    5454    GtkWidget* viewWidget() { return m_viewWidget; }
    55 
    56     void zoom(double);
    5755
    5856private:
  • trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp

    r234920 r235529  
    11171117    void startZoom(const IntPoint& center, double& initialScale, IntPoint& initialPoint) final
    11181118    {
    1119         auto* page = webkitWebViewBaseGetPage(m_webView);
     1119        auto* page = m_webView->priv->pageProxy.get();
    11201120        ASSERT(page);
    1121         initialScale = page->pageZoomFactor();
     1121        initialScale = page->pageScaleFactor();
    11221122        page->getCenterForZoomGesture(center, initialPoint);
    11231123    }
    11241124
    1125     void zoom(double scale) final
     1125    void zoom(double scale, const IntPoint& origin) final
    11261126    {
    1127         m_webView->priv->pageClient->zoom(scale);
     1127        auto* page = m_webView->priv->pageProxy.get();
     1128        ASSERT(page);
     1129
     1130        page->scalePage(scale, origin);
    11281131    }
    11291132
  • trunk/Source/WebKit/UIProcess/gtk/GestureController.cpp

    r228373 r235529  
    204204void GestureController::ZoomGesture::handleZoom()
    205205{
    206     m_client.zoom(m_scale);
     206    FloatPoint scaledZoomCenter(m_initialPoint);
     207    scaledZoomCenter.scale(m_scale);
     208
     209    m_client.zoom(m_scale, WebCore::roundedIntPoint(FloatPoint(scaledZoomCenter - m_viewPoint)));
    207210}
    208211
     
    210213{
    211214    zoomGesture->m_scale = zoomGesture->m_initialScale * scale;
     215    if (zoomGesture->m_scale < 1.0)
     216        zoomGesture->m_scale = 1.0;
     217
    212218    zoomGesture->m_viewPoint = zoomGesture->center();
     219
    213220    if (zoomGesture->m_idle.isActive())
    214221        return;
  • trunk/Source/WebKit/UIProcess/gtk/GestureController.h

    r227961 r235529  
    5252
    5353    virtual void startZoom(const WebCore::IntPoint& center, double& initialScale, WebCore::IntPoint& initialPoint) = 0;
    54     virtual void zoom(double) = 0;
     54    virtual void zoom(double scale, const WebCore::IntPoint& origin) = 0;
    5555
    5656    virtual void longPress(GdkEventTouch*) = 0;
Note: See TracChangeset for help on using the changeset viewer.