Changeset 109230 in webkit
- Timestamp:
- Feb 29, 2012 10:51:15 AM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r109229 r109230 1 2012-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 1 25 2012-02-29 Carlos Garcia Campos <cgarcia@igalia.com> 2 26 -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp
r109222 r109230 173 173 } 174 174 175 static void zoomTextOnlyChanged(WebKitSettings* settings, GParamSpec*, WebKitWebView* webView) 176 { 177 WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); 178 gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(settings); 179 gdouble pageZoomLevel = zoomTextOnly ? 1 : WKPageGetTextZoomFactor(wkPage); 180 gdouble textZoomLevel = zoomTextOnly ? WKPageGetPageZoomFactor(wkPage) : 1; 181 WKPageSetPageAndTextZoomFactors(wkPage, pageZoomLevel, textZoomLevel); 182 } 183 184 static void webkitWebViewSetSettings(WebKitWebView* webView, WebKitSettings* settings, WKPageRef wkPage) 185 { 186 webView->priv->settings = settings; 187 webkitSettingsAttachSettingsToPage(webView->priv->settings.get(), wkPage); 188 g_signal_connect(settings, "notify::zoom-text-only", G_CALLBACK(zoomTextOnlyChanged), webView); 189 } 190 175 191 static void webkitWebViewConstructed(GObject* object) 176 192 { … … 190 206 WebPageProxy* page = webkitWebViewBaseGetPage(webViewBase); 191 207 priv->backForwardList = adoptGRef(webkitBackForwardListCreate(WKPageGetBackForwardList(toAPI(page)))); 192 priv->settings = adoptGRef(webkit_settings_new()); 193 webkitSettingsAttachSettingsToPage(priv->settings.get(), toAPI(page)); 208 209 GRefPtr<WebKitSettings> settings = adoptGRef(webkit_settings_new()); 210 webkitWebViewSetSettings(webView, settings.get(), toAPI(page)); 194 211 } 195 212 … … 1305 1322 return; 1306 1323 1307 webView->priv->settings = settings;1308 webkit SettingsAttachSettingsToPage(settings, toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))));1324 g_signal_handlers_disconnect_by_func(webView->priv->settings.get(), reinterpret_cast<gpointer>(zoomTextOnlyChanged), webView); 1325 webkitWebViewSetSettings(webView, settings, toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView)))); 1309 1326 } 1310 1327 … … 1368 1385 return; 1369 1386 1370 WKPageSetPageZoomFactor(wkPage, zoomLevel); 1387 if (webkit_settings_get_zoom_text_only(webView->priv->settings.get())) 1388 WKPageSetTextZoomFactor(wkPage, zoomLevel); 1389 else 1390 WKPageSetPageZoomFactor(wkPage, zoomLevel); 1371 1391 g_object_notify(G_OBJECT(webView), "zoom-level"); 1372 1392 } … … 1386 1406 1387 1407 WKPageRef wkPage = toAPI(webkitWebViewBaseGetPage(WEBKIT_WEB_VIEW_BASE(webView))); 1388 return WKPageGetPageZoomFactor(wkPage); 1408 gboolean zoomTextOnly = webkit_settings_get_zoom_text_only(webView->priv->settings.get()); 1409 return zoomTextOnly ? WKPageGetTextZoomFactor(wkPage) : WKPageGetPageZoomFactor(wkPage); 1389 1410 } 1390 1411 -
trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp
r109120 r109230 446 446 webkit_web_view_set_zoom_level(test->m_webView, 2.5); 447 447 g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5); 448 449 webkit_settings_set_zoom_text_only(webkit_web_view_get_settings(test->m_webView), TRUE); 450 // The zoom level shouldn't change when zoom-text-only setting changes. 451 g_assert_cmpfloat(webkit_web_view_get_zoom_level(test->m_webView), ==, 2.5); 448 452 } 449 453
Note: See TracChangeset
for help on using the changeset viewer.