aboutsummaryrefslogtreecommitdiff
path: root/src/uicmd.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/uicmd.cc')
-rw-r--r--src/uicmd.cc59
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)