diff options
author | Todd Fries <todd@fries.net> | 2011-02-22 17:22:56 +0000 |
---|---|---|
committer | Todd Fries <todd@fries.net> | 2011-02-22 17:22:56 +0000 |
commit | f08dc8fa40a66aca2afe88606a41353c3506fc0e (patch) | |
tree | 531f9b7e928dc992a348171c8e09af1260a1a401 | |
parent | 9442260e3a96fcb928e4e5447e3042c79c8d3960 (diff) | |
download | xombrero-f08dc8fa40a66aca2afe88606a41353c3506fc0e.tar.gz |
use zoom-level to scale the whole page instead of just fonts
get it in marco@
-rw-r--r-- | xxxterm.1 | 2 | ||||
-rw-r--r-- | xxxterm.c | 39 | ||||
-rw-r--r-- | xxxterm.conf | 1 |
3 files changed, 35 insertions, 7 deletions
diff --git a/xxxterm.1 b/xxxterm.1 index 267bf6d..e3e1928 100644 --- a/xxxterm.1 +++ b/xxxterm.1 @@ -684,6 +684,8 @@ Enable cookies. Give focus in newly created tab instead of opening it in the background. .It Cm default_font_size Set the default browsing font size. +.It Cm default_zoom_level +Set the default browsing zoom level. .It Cm download_dir Locations where files are downloaded to. This directory must exist and diff --git a/xxxterm.c b/xxxterm.c index fd085cf..e70ada2 100644 --- a/xxxterm.c +++ b/xxxterm.c @@ -463,6 +463,7 @@ int read_only_cookies = 0; /* enable to not write cookies */ int enable_scripts = 1; int enable_plugins = 0; int default_font_size = 12; +gfloat default_zoom_level = 1.0; int window_height = 768; int window_width = 1024; int icon_size = 2; /* 1 = smallest, 2+ = bigger */ @@ -581,12 +582,14 @@ struct settings { #define XT_S_INVALID (0) #define XT_S_INT (1) #define XT_S_STR (2) +#define XT_S_FLOAT (3) uint32_t flags; #define XT_SF_RESTART (1<<0) #define XT_SF_RUNTIME (1<<1) int *ival; char **sval; struct special *s; + gfloat *fval; } rs[] = { { "append_next", XT_S_INT, 0, &append_next, NULL, NULL }, { "allow_volatile_cookies", XT_S_INT, 0, &allow_volatile_cookies, NULL, NULL }, @@ -595,6 +598,7 @@ struct settings { { "cookies_enabled", XT_S_INT, 0, &cookies_enabled, NULL, NULL }, { "ctrl_click_focus", XT_S_INT, 0, &ctrl_click_focus, NULL, NULL }, { "default_font_size", XT_S_INT, 0, &default_font_size, NULL, NULL }, + { "default_zoom_level", XT_S_FLOAT, 0, NULL, NULL, NULL, &default_zoom_level }, { "download_dir", XT_S_STR, 0, NULL, NULL,&s_download_dir }, { "enable_cookie_whitelist", XT_S_INT, 0, &enable_cookie_whitelist, NULL, NULL }, { "enable_js_whitelist", XT_S_INT, 0, &enable_js_whitelist, NULL, NULL }, @@ -882,6 +886,8 @@ get_as_string(struct settings *s) r = g_strdup_printf("%d", *s->ival); else if (s->type == XT_S_STR) r = g_strdup(*s->sval); + else if (s->type == XT_S_FLOAT) + r = g_strdup_printf("%f", *s->fval); else r = g_strdup_printf("INVALID TYPE"); @@ -1624,6 +1630,7 @@ int settings_add(char *var, char *val) { int i, rv, *p; + gfloat *f; char **s; /* get settings */ @@ -1653,6 +1660,11 @@ settings_add(char *var, char *val) *s = g_strdup(val); rv = 1; break; + case XT_S_FLOAT: + f = rs[i].fval; + *f = atof(val); + rv = 1; + break; case XT_S_INVALID: default: errx(1, "invalid type for %s", var); @@ -6456,6 +6468,8 @@ setup_webkit(struct tab *t) "enable-scripts", enable_scripts, (char *)NULL); g_object_set(G_OBJECT(t->settings), "enable-plugins", enable_plugins, (char *)NULL); + g_object_set(G_OBJECT(t->wv), + "full-content-zoom", TRUE, (char *)NULL); adjustfont_webkit(t, XT_FONT_SET); webkit_web_view_set_settings(t->wv, t->settings); @@ -6695,19 +6709,30 @@ delete_tab(struct tab *t) void adjustfont_webkit(struct tab *t, int adjust) { + gfloat zoom; if (t == NULL) { show_oops_s("adjustfont_webkit invalid parameters"); return; } - if (adjust == XT_FONT_SET) + g_object_get(G_OBJECT(t->wv), "zoom-level", &zoom, (char *)NULL); + if (adjust == XT_FONT_SET) { t->font_size = default_font_size; - - t->font_size += adjust; - g_object_set(G_OBJECT(t->settings), "default-font-size", - t->font_size, (char *)NULL); - g_object_get(G_OBJECT(t->settings), "default-font-size", - &t->font_size, (char *)NULL); + zoom = default_zoom_level; + t->font_size += adjust; + g_object_set(G_OBJECT(t->settings), "default-font-size", + t->font_size, (char *)NULL); + g_object_get(G_OBJECT(t->settings), "default-font-size", + &t->font_size, (char *)NULL); + } else { + t->font_size += adjust; + zoom += adjust/25.0; + if (zoom < 0.0) { + zoom = 0.04; + } + } + g_object_set(G_OBJECT(t->wv), "zoom-level", zoom, (char *)NULL); + g_object_get(G_OBJECT(t->wv), "zoom-level", &zoom, (char *)NULL); } void diff --git a/xxxterm.conf b/xxxterm.conf index f2fea89..0be9c93 100644 --- a/xxxterm.conf +++ b/xxxterm.conf @@ -13,6 +13,7 @@ # append_next = 1 # download_dir = ~/downloads # default_font_size = 12 +# default_zoom_level = 1.0 # fancy_bar = 1 # refresh_interval = 10 # ssl_ca_file = /etc/ssl/cert.pem |