⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 109341 in webkit


Ignore:
Timestamp:
Mar 1, 2012, 5:56:47 AM (15 years ago)
Author:
Carlos Garcia Campos
Message:

Merging r109230

Location:
releases/WebKitGTK/webkit-1.8/Source/WebKit2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • releases/WebKitGTK/webkit-1.8/Source/WebKit2/ChangeLog

    r109339 r109341  
     12012-02-29  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK] Use text or page zoom factor in WebKitWebView depending on zoom-text-only
     4        https://bugs.webkit.org/show_bug.cgi?id=75252
     5
     6        Reviewed by Gustavo Noronha Silva.
     7
     8        * UIProcess/API/gtk/WebKitWebView.cpp:
     9        (zoomTextOnlyChanged): Update text/page zoom factor when
     10        zoom-text-only setting changes.
     11        (webkitWebViewSetSettings): Helper function to set the settings
     12        object for the web view, initializing the settings for the page
     13        and connecting to notify::zoom-text-only signal.
     14        (webkitWebViewConstructed): Use webkitWebViewSetSettings().
     15        (webkit_web_view_set_settings): Use webkitWebViewSetSettings() and
     16        disconnect from the notify::zoom-text-only signal of the previous
     17        settings object.
     18        (webkit_web_view_set_zoom_level): Set text/page zoom factor
     19        depending on WebKitSettings:zoom-text-only property.
     20        (webkit_web_view_get_zoom_level): Get text/page zoom factor
     21        depending on WebKitSettings:zoom-text-only property.
     22        * UIProcess/API/gtk/tests/TestWebKitWebView.cpp:
     23        (testWebViewZoomLevel):
     24
    1252012-02-29  Carlos Garcia Campos  <cgarcia@igalia.com>
    226
  • releases/WebKitGTK/webkit-1.8/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp

    r109330 r109341  
    166166}
    167167
     168static void zoomTextOnlyChanged(WebKitSettings* settings, GParamSpec*, WebKitWebView* webView)
     169{
     170    WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)));
     171    gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(settings);
     172    gdouble pageZoomLevel = zoomTextOnly ? 1 : WKPageGetTextZoomFactor(wkPage);
     173    gdouble textZoomLevel = zoomTextOnly ? WKPageGetPageZoomFactor(wkPage) : 1;
     174    WKPageSetPageAndTextZoomFactors(wkPage, pageZoomLevel, textZoomLevel);
     175}
     176
     177static void webkitWebViewSetSettings(WebKitWebView* webView, WebKitSettings* settings, WKPageRef wkPage)
     178{
     179    webView->priv->settings = settings;
     180    webkitSettingsAttachSettingsToPage(webView->priv->settings.get(), wkPage);
     181    g_signal_connect(settings, "notify::zoom-text-only", G_CALLBACK(zoomTextOnlyChanged), webView);
     182}
     183
    168184static void webkitWebViewConstructed(GObject* object)
    169185{
    … …  
    183199    WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase);
    184200    priv->backForwardList = adoptGRef(webkitBackForwardListCreate(WKPageGetBackForwardList(toAPI(page))));
    185     priv->settings = adoptGRef(webkit_settings_new());
    186     webkitSettingsAttachSettingsToPage(priv->settings.get(), toAPI(page));
     201
     202    GRefPtr<WebKitSettings> settings = adoptGRef(webkit_settings_new());
     203    webkitWebViewSetSettings(webView, settings.get(), toAPI(page));
    187204}
    188205
    … …  
    12821299        return;
    12831300
    1284     webView->priv->settings = settings;
    1285     webkitSettingsAttachSettingsToPage(settings, toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))));
     1301    g_signal_handlers_disconnect_by_func(webView->priv->settings.get(), reinterpret_cast<gpointer>(zoomTextOnlyChanged), webView);
     1302    webkitWebViewSetSettings(webView, settings, toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))));
    12861303}
    12871304
    … …  
    13451362        return;
    13461363
    1347     WKPageSetPageZoomFactor(wkPage, zoomLevel);
     1364    if (webkit_settings_get_zoom_text_only(webView->priv->settings.get()))
     1365        WKPageSetTextZoomFactor(wkPage, zoomLevel);
     1366    else
     1367        WKPageSetPageZoomFactor(wkPage, zoomLevel);
    13481368    g_object_notify(G_OBJECT(webView), "zoom-level");
    13491369}
    … …  
    13631383
    13641384    WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)));
    1365     return WKPageGetPageZoomFactor(wkPage);
     1385    gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(webView->priv->settings.get());
     1386    return zoomTextOnly ? WKPageGetTextZoomFactor(wkPage) : WKPageGetPageZoomFactor(wkPage);
    13661387}
    13671388
  • releases/WebKitGTK/webkit-1.8/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp

    r107250 r109341  
    448448    webkit_web_view_set_zoom_level(test->m_webView, 2.5);
    449449    g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5);
     450
     451    webkit_settings_set_zoom_text_only(webkit_web_view_get_settings(test->m_webView), TRUE);
     452    // The zoom level shouldn't change when zoom-text-only setting changes.
     453    g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5);
    450454}
    451455
Note: See TracChangeset for help on using the changeset viewer.