diff options
author | James Bursa <james@netsurf-browser.org> | 2004-02-26 17:52:10 +0000 |
---|---|---|
committer | James Bursa <james@netsurf-browser.org> | 2004-02-26 17:52:10 +0000 |
commit | c05d6fdc8bce910e5a2f7838c5bf906508f2a32a (patch) | |
tree | 704a4baecee045319926e48e23e265f47c49f251 /riscos | |
parent | 0a4caa5687e90b54d1c69854140efd11f5ad2ed9 (diff) | |
download | netsurf-c05d6fdc8bce910e5a2f7838c5bf906508f2a32a.tar.gz netsurf-c05d6fdc8bce910e5a2f7838c5bf906508f2a32a.tar.bz2 |
[project @ 2004-02-26 17:52:10 by bursa]
Implement back and forward using history.
svn path=/import/netsurf/; revision=572
Diffstat (limited to 'riscos')
-rw-r--r-- | riscos/history.c | 32 | ||||
-rw-r--r-- | riscos/menus.c | 6 | ||||
-rw-r--r-- | riscos/mouseactions.c | 4 | ||||
-rw-r--r-- | riscos/window.c | 11 |
4 files changed, 49 insertions, 4 deletions
diff --git a/riscos/history.c b/riscos/history.c index 192c7e245..a11f82877 100644 --- a/riscos/history.c +++ b/riscos/history.c @@ -331,6 +331,7 @@ void ro_gui_history_open(struct browser_window *bw, state.visible.y0 = wy - height / 2; state.visible.x1 = wx + width / 2; state.visible.y1 = wy + height / 2; + state.next = wimp_TOP; wimp_open_window((wimp_open *) &state); } @@ -486,3 +487,34 @@ struct history_entry * ro_gui_history_click_find(struct history_entry *he, return 0; } + +/** + * Go back in the history. + * + * \param bw browser window + * \param history history of the window + */ + +void history_back(struct browser_window *bw, struct history *history) +{ + if (!history || !history->current->back) + return; + history->current = history->current->back; + browser_window_go_post(bw, history->current->url, 0, 0, false); +} + + +/** + * Go forward in the history. + * + * \param bw browser window + * \param history history of the window + */ + +void history_forward(struct browser_window *bw, struct history *history) +{ + if (!history || !history->current->forward_pref) + return; + history->current = history->current->forward_pref; + browser_window_go_post(bw, history->current->url, 0, 0, false); +} diff --git a/riscos/menus.c b/riscos/menus.c index cc26f584d..2c753220d 100644 --- a/riscos/menus.c +++ b/riscos/menus.c @@ -256,10 +256,12 @@ void ro_gui_menu_selection(wimp_selection *selection) HOME_URL); break; case 2: /* Back */ - browser_window_back(current_gui->data.browser.bw); + history_back(current_gui->data.browser.bw, + current_gui->data.browser.bw->history); break; case 3: /* Forward */ - browser_window_forward(current_gui->data.browser.bw); + history_forward(current_gui->data.browser.bw, + current_gui->data.browser.bw->history); break; case 4: /* Reload */ break; diff --git a/riscos/mouseactions.c b/riscos/mouseactions.c index 6b9d2c483..a0b0a3143 100644 --- a/riscos/mouseactions.c +++ b/riscos/mouseactions.c @@ -48,11 +48,11 @@ void ro_gui_mouse_action(gui_window *g) { switch (ma) { case mouseaction_BACK: - browser_window_back(g->data.browser.bw); +/* browser_window_back(g->data.browser.bw); */ break; case mouseaction_FORWARD: - browser_window_forward(g->data.browser.bw); +/* browser_window_forward(g->data.browser.bw); */ break; case mouseaction_RELOAD: diff --git a/riscos/window.c b/riscos/window.c index 8b5c02422..80cd80b02 100644 --- a/riscos/window.c +++ b/riscos/window.c @@ -547,11 +547,22 @@ void ro_gui_window_mouse_at(wimp_pointer* pointer) void ro_gui_toolbar_click(gui_window* g, wimp_pointer* pointer) { switch (pointer->i) { + case ICON_TOOLBAR_BACK: + history_back(g->data.browser.bw, + g->data.browser.bw->history); + break; + + case ICON_TOOLBAR_FORWARD: + history_forward(g->data.browser.bw, + g->data.browser.bw->history); + break; + case ICON_TOOLBAR_HISTORY: ro_gui_history_open(g->data.browser.bw, g->data.browser.bw->history, pointer->pos.x, pointer->pos.y); break; + case ICON_TOOLBAR_RELOAD: /* browser_window_open_location_historical(g->data.browser.bw, g->data.browser.bw->url |