Changeset 109517 in webkit
- Timestamp:
- Mar 1, 2012 11:33:24 PM (12 years ago)
- Location:
- trunk/Source/WebKit/gtk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/gtk/ChangeLog
r108996 r109517 1 2012-03-01 Carlos Garcia Campos <cgarcia@igalia.com> 2 3 [GTK] Simplify the code to adjust font sizes depending on screen DPI 4 https://bugs.webkit.org/show_bug.cgi?id=80032 5 6 Reviewed by Martin Robinson. 7 8 * webkit/webkitwebview.cpp: 9 (screenDPI): Helper function to get the DPI of a given 10 GdkScreen. Added also fallback code when gdk_screen_resolution 11 returns -1. 12 (webViewGetDPI): Use screenDPI() from WebCore. 13 (webViewConvertFontSizeToPixels): This is the existing 14 pixelsFromSize(), renamed and moved to be used also in 15 webkit_web_view_screen_changed(). 16 (webkit_web_view_screen_changed): Use 17 webViewConvertFontSizeToPixels() instead of duplicating the code. 18 (webkit_web_view_settings_notify): Use 19 webViewConvertFontSizeToPixels() instead of pixelsFromSize(). 20 1 21 2012-02-27 Vincent Untz <vuntz@gnome.org>> and Gustavo Noronha Silva <gns@gnome.org> 2 22 -
trunk/Source/WebKit/gtk/webkit/webkitwebview.cpp
r108620 r109517 1417 1417 } 1418 1418 1419 static double screenDPI(GdkScreen* screen) 1420 { 1421 // gdk_screen_get_resolution() returns -1 when no DPI is set. 1422 double dpi = gdk_screen_get_resolution(screen); 1423 if (dpi != -1) 1424 return dpi; 1425 1426 static const double kMillimetresPerInch = 25.4; 1427 double diagonalSizeInPixels = hypot(gdk_screen_get_width(screen), gdk_screen_get_height(screen)); 1428 double diagonalSizeInInches = hypot(gdk_screen_get_width_mm(screen), gdk_screen_get_height_mm(screen)) / kMillimetresPerInch; 1429 return diagonalSizeInPixels / diagonalSizeInInches; 1430 } 1431 1419 1432 static gdouble webViewGetDPI(WebKitWebView* webView) 1420 1433 { … … 1424 1437 static const double defaultDPI = 96; 1425 1438 GdkScreen* screen = gtk_widget_has_screen(GTK_WIDGET(webView)) ? gtk_widget_get_screen(GTK_WIDGET(webView)) : gdk_screen_get_default(); 1426 if (!screen)1427 return defaultDPI; 1428 1429 // gdk_screen_get_resolution() returns -1 when no DPI is set. 1430 gdouble DPI = gdk_screen_get_resolution(screen); 1431 return DPI != -1 ? DPI : defaultDPI;1439 return screen ? screenDPI(screen) : defaultDPI; 1440 } 1441 1442 static inline gint webViewConvertFontSizeToPixels(WebKitWebView* webView, double fontSize) 1443 { 1444 return fontSize / 72.0 * webViewGetDPI(webView); 1432 1445 } 1433 1446 … … 1442 1455 WebKitWebSettings* webSettings = priv->webSettings.get(); 1443 1456 Settings* settings = core(webView)->settings(); 1444 gdouble DPI = webViewGetDPI(webView);1445 1446 1457 guint defaultFontSize, defaultMonospaceFontSize, minimumFontSize, minimumLogicalFontSize; 1447 1458 … … 1453 1464 NULL); 1454 1465 1455 settings->setDefaultFontSize( defaultFontSize / 72.0 * DPI);1456 settings->setDefaultFixedFontSize( defaultMonospaceFontSize / 72.0 * DPI);1457 settings->setMinimumFontSize( minimumFontSize / 72.0 * DPI);1458 settings->setMinimumLogicalFontSize( minimumLogicalFontSize / 72.0 * DPI);1466 settings->setDefaultFontSize(webViewConvertFontSizeToPixels(webView, defaultFontSize)); 1467 settings->setDefaultFixedFontSize(webViewConvertFontSizeToPixels(webView, defaultMonospaceFontSize)); 1468 settings->setMinimumFontSize(webViewConvertFontSizeToPixels(webView, minimumFontSize)); 1469 settings->setMinimumLogicalFontSize(webViewConvertFontSizeToPixels(webView, minimumLogicalFontSize)); 1459 1470 } 1460 1471 … … 3337 3348 } 3338 3349 3339 static inline gint pixelsFromSize(WebKitWebView* webView, gint size)3340 {3341 return size / 72.0 * webViewGetDPI(webView);3342 }3343 3344 3350 static void webkit_web_view_settings_notify(WebKitWebSettings* webSettings, GParamSpec* pspec, WebKitWebView* webView) 3345 3351 { … … 3366 3372 settings->setSerifFontFamily(g_value_get_string(&value)); 3367 3373 else if (name == g_intern_string("default-font-size")) 3368 settings->setDefaultFontSize( pixelsFromSize(webView, g_value_get_int(&value)));3374 settings->setDefaultFontSize(webViewConvertFontSizeToPixels(webView, g_value_get_int(&value))); 3369 3375 else if (name == g_intern_string("default-monospace-font-size")) 3370 settings->setDefaultFixedFontSize( pixelsFromSize(webView, g_value_get_int(&value)));3376 settings->setDefaultFixedFontSize(webViewConvertFontSizeToPixels(webView, g_value_get_int(&value))); 3371 3377 else if (name == g_intern_string("minimum-font-size")) 3372 settings->setMinimumFontSize( pixelsFromSize(webView, g_value_get_int(&value)));3378 settings->setMinimumFontSize(webViewConvertFontSizeToPixels(webView, g_value_get_int(&value))); 3373 3379 else if (name == g_intern_string("minimum-logical-font-size")) 3374 settings->setMinimumLogicalFontSize( pixelsFromSize(webView, g_value_get_int(&value)));3380 settings->setMinimumLogicalFontSize(webViewConvertFontSizeToPixels(webView, g_value_get_int(&value))); 3375 3381 else if (name == g_intern_string("enforce-96-dpi")) 3376 3382 webkit_web_view_screen_changed(GTK_WIDGET(webView), NULL);
Note: See TracChangeset
for help on using the changeset viewer.