diff options
Diffstat (limited to 'src/uicmd.cc')
-rw-r--r-- | src/uicmd.cc | 59 |
1 files changed, 56 insertions, 3 deletions
diff --git a/src/uicmd.cc b/src/uicmd.cc index d7822e47..d289df0c 100644 --- a/src/uicmd.cc +++ b/src/uicmd.cc @@ -576,9 +576,13 @@ BrowserWindow *a_UIcmd_browser_window_new(int ww, int wh, new_bw = UIcmd_tab_new(DilloTabs, old_ui, focus); win->show(); - if (old_bw == NULL && prefs.xpos >= 0 && prefs.ypos >= 0) { - // position the first window according to preferences - DilloTabs->window()->position(prefs.xpos, prefs.ypos); + if (old_bw == NULL) { + new_bw->zoom = prefs.zoom_factor; + + if (prefs.xpos >= 0 && prefs.ypos >= 0) { + // position the first window according to preferences + DilloTabs->window()->position(prefs.xpos, prefs.ypos); + } } win->callback(win_cb, DilloTabs); @@ -799,6 +803,8 @@ void a_UIcmd_open_url_nw(BrowserWindow *bw, const DilloUrl *url) a_UIcmd_get_wh(bw, &w, &h); new_bw = a_UIcmd_browser_window_new(w, h, 0, bw); + /* Preserve same zoom factor in new window */ + new_bw->zoom = bw->zoom; UIcmd_open_url_nbw(new_bw, url); } @@ -810,6 +816,8 @@ void a_UIcmd_open_url_nt(void *vbw, const DilloUrl *url, int focus) BrowserWindow *bw = (BrowserWindow *)vbw; BrowserWindow *new_bw = UIcmd_tab_new(BW2UI(bw)->tabs(), bw ? BW2UI(bw) : NULL, focus); + /* Preserve same zoom factor in new tab */ + new_bw->zoom = bw->zoom; UIcmd_open_url_nbw(new_bw, url); } @@ -878,6 +886,51 @@ void a_UIcmd_redirection0(void *vbw, const DilloUrl *url) } /* + * Zoom in + */ +void a_UIcmd_zoom_in(void *vbw) +{ + BrowserWindow *bw = (BrowserWindow*) vbw; + bw->zoom += 0.10; + + if (bw->zoom > 10.0) + bw->zoom = 10.0; + + a_UIcmd_set_msg(bw, "Zoom set to %.0f%%", bw->zoom * 100.0); + + a_Nav_repush((BrowserWindow*)vbw); +} + +/* + * Zoom out + */ +void a_UIcmd_zoom_out(void *vbw) +{ + BrowserWindow *bw = (BrowserWindow*) vbw; + bw->zoom -= 0.10; + + if (bw->zoom < 0.10) + bw->zoom = 0.10; + + a_UIcmd_set_msg(bw, "Zoom set to %.0f%%", bw->zoom * 100.0); + + a_Nav_repush((BrowserWindow*)vbw); +} + +/* + * Zoom reset + */ +void a_UIcmd_zoom_reset(void *vbw) +{ + BrowserWindow *bw = (BrowserWindow*) vbw; + bw->zoom = 1.0; + + a_UIcmd_set_msg(bw, "Zoom set to %.0f%%", bw->zoom * 100.0); + + a_Nav_repush((BrowserWindow*)vbw); +} + +/* * Return a suitable filename for a given URL path. */ static char *UIcmd_make_save_filename(const DilloUrl *url) |