[devhelp] Port WebKitSettings to WebKit2
- From: Carlos Garcia Campos <carlosgc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [devhelp] Port WebKitSettings to WebKit2
- Date: Mon, 5 Mar 2012 16:00:23 +0000 (UTC)
commit 08bebbe4ac7e8323f207e14eb479430db4826704
Author: Carlos Garcia Campos <cgarcia igalia com>
Date: Fri Mar 2 11:33:57 2012 +0100
Port WebKitSettings to WebKit2
Convert font sizes from points to pixels for WebKit2, since
WebKitSettings in WebKit2 expects font sizes in pixels. Also set
zoom-text-only property to TRUE in WebKit2. That's the equivalent to
webkit_web_view_set_full_content_zoom() in WebKit1.
src/dh-util.c | 54 +++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 49 insertions(+), 5 deletions(-)
---
diff --git a/src/dh-util.c b/src/dh-util.c
index 897ef9e..87de1bc 100644
--- a/src/dh-util.c
+++ b/src/dh-util.c
@@ -23,6 +23,7 @@
#include <string.h>
#include <stdlib.h>
#include <gtk/gtk.h>
+#include <math.h>
#ifdef GDK_WINDOWING_QUARTZ
#include <gtkosxapplication.h>
#endif
@@ -666,19 +667,57 @@ view_destroy_cb (GtkWidget *view,
views = g_list_remove (views, view);
}
+static gdouble
+get_screen_dpi (GdkScreen *screen)
+{
+ gdouble dpi;
+ gdouble dp, di;
+
+ dpi = gdk_screen_get_resolution (screen);
+ if (dpi != -1)
+ return dpi;
+
+ dp = hypot (gdk_screen_get_width (screen), gdk_screen_get_height (screen));
+ di = hypot (gdk_screen_get_width_mm (screen), gdk_screen_get_height_mm (screen)) / 25.4;
+
+ return dp / di;
+}
+
+static guint
+dh_util_convert_font_size_to_pixels (GtkWidget *widget,
+ gdouble font_size)
+{
+#ifdef HAVE_WEBKIT2
+ /* WebKit2 uses font sizes in pixels */
+ GdkScreen *screen;
+ gdouble dpi;
+
+ screen = gtk_widget_has_screen (widget) ?
+ gtk_widget_get_screen (widget) : gdk_screen_get_default ();
+ dpi = screen ? get_screen_dpi (screen) : 96;
+
+ return font_size / 72.0 * dpi;
+#else
+ return font_size;
+#endif
+}
+
static void
view_setup_fonts (WebKitWebView *view)
{
#ifdef HAVE_WEBKIT2
-/* TODO: WebKit Settings */
+ WebKitSettings *settings;
#else
- IgeConf *conf;
WebKitWebSettings *settings;
+#endif
+ IgeConf *conf;
gboolean use_system_fonts;
gchar *variable_name;
gdouble variable_size;
+ guint variable_size_px;
gchar *fixed_name;
gdouble fixed_size;
+ guint fixed_size_px;
conf = ige_conf_get ();
@@ -693,17 +732,22 @@ view_setup_fonts (WebKitWebView *view)
dh_util_font_get_fixed (&fixed_name, &fixed_size,
use_system_fonts);
+ variable_size_px = dh_util_convert_font_size_to_pixels (GTK_WIDGET (view), fixed_size);
+ fixed_size_px = dh_util_convert_font_size_to_pixels (GTK_WIDGET (view), variable_size);
+
g_object_set (settings,
+#ifdef HAVE_WEBKIT2
+ "zoom-text-only", TRUE,
+#endif
"monospace-font-family", fixed_name,
- "default-monospace-font-size", (guint) fixed_size,
+ "default-monospace-font-size", fixed_size_px,
"sans-serif-font-family", variable_name,
"serif-font-family", variable_name,
- "default-font-size", (guint) variable_size,
+ "default-font-size", variable_size_px,
NULL);
g_free (variable_name);
g_free (fixed_name);
-#endif /* HAVE_WEBKIT2 */
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]