From 77de9c13364ab754a5490156afe26e56882f728b Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Mon, 3 Jan 2005 02:09:20 +0000 Subject: [project @ 2005-01-03 02:09:20 by jmb] Shift + Click == download svn path=/import/netsurf/; revision=1429 --- riscos/401login.c | 4 ++-- riscos/gui.c | 2 +- riscos/history.c | 2 +- riscos/menus.c | 4 ++-- riscos/plugin.c | 3 ++- riscos/window.c | 19 +++++++++++++------ 6 files changed, 21 insertions(+), 13 deletions(-) (limited to 'riscos') diff --git a/riscos/401login.c b/riscos/401login.c index 4f68d463d..449864638 100644 --- a/riscos/401login.c +++ b/riscos/401login.c @@ -103,7 +103,7 @@ bool ro_gui_401login_keypress(wimp_key *key) case wimp_KEY_RETURN: get_unamepwd(); ro_gui_dialog_close(dialog_401li); - browser_window_go(bwin, url, 0); + browser_window_go(bwin, url, 0, false); return true; } @@ -122,7 +122,7 @@ void ro_gui_401login_click(wimp_pointer *pointer) case ICON_401LOGIN_LOGIN: get_unamepwd(); ro_gui_dialog_close(dialog_401li); - browser_window_go(bwin, url, 0); + browser_window_go(bwin, url, 0, false); break; case ICON_401LOGIN_CANCEL: ro_gui_dialog_close(dialog_401li); diff --git a/riscos/gui.c b/riscos/gui.c index 4b5856efb..8ef2d561f 100644 --- a/riscos/gui.c +++ b/riscos/gui.c @@ -1179,7 +1179,7 @@ void ro_msg_dataload(wimp_message *message) return; if (g) { - browser_window_go(g->bw, url, 0); + browser_window_go(g->bw, url, 0, false); } else { if ((hotlist_tree) && ((wimp_w)hotlist_tree->handle == message->data.data_xfer.w)) { diff --git a/riscos/history.c b/riscos/history.c index 7901ed3ae..ebd4e7def 100644 --- a/riscos/history.c +++ b/riscos/history.c @@ -675,7 +675,7 @@ void history_go(struct browser_window *bw, struct history_entry *entry) else url = entry->url; - browser_window_go_post(bw, url, 0, 0, false, 0); + browser_window_go_post(bw, url, 0, 0, false, 0, false); if (entry->frag_id) free(url); diff --git a/riscos/menus.c b/riscos/menus.c index 4ca41b989..8c27d38bb 100644 --- a/riscos/menus.c +++ b/riscos/menus.c @@ -952,12 +952,12 @@ void ro_gui_menu_selection(wimp_selection *selection) case 0: /* Home */ if (option_homepage_url && option_homepage_url[0]) { browser_window_go_post(current_gui->bw, option_homepage_url, - 0, 0, true, 0); + 0, 0, true, 0, false); } else { snprintf(url, sizeof url, "file://Docs/intro_%s", option_language); - browser_window_go_post(current_gui->bw, url, 0, 0, true, 0); + browser_window_go_post(current_gui->bw, url, 0, 0, true, 0, false); } break; case 1: /* Back */ diff --git a/riscos/plugin.c b/riscos/plugin.c index 03692c262..ec35d20d1 100644 --- a/riscos/plugin.c +++ b/riscos/plugin.c @@ -800,7 +800,8 @@ void plugin_url_access(wimp_message *message) strcasecmp(window, "_parent") == 0 || strcasecmp(window, "_top") == 0 || strcasecmp(window, "") == 0) { - browser_window_go(c->data.plugin.bw, url, 0); + browser_window_go(c->data.plugin.bw, url, + 0, false); } else if (strcasecmp(window, "_blank") == 0) { browser_window_create(url, NULL, 0); diff --git a/riscos/window.c b/riscos/window.c index 7054cacf6..0f9dfbe6c 100644 --- a/riscos/window.c +++ b/riscos/window.c @@ -19,6 +19,7 @@ #include #include #include "oslib/colourtrans.h" +#include "oslib/osbyte.h" #include "oslib/osspriteop.h" #include "oslib/wimp.h" #include "oslib/wimpspriteop.h" @@ -1142,7 +1143,7 @@ void ro_gui_toolbar_click(struct gui_window *g, wimp_pointer *pointer) if (option_homepage_url && option_homepage_url[0]) { if (pointer->buttons == wimp_CLICK_SELECT) { browser_window_go_post(g->bw, option_homepage_url, - 0, 0, true, 0); + 0, 0, true, 0, false); } else { browser_window_create(option_homepage_url, NULL, 0); } @@ -1151,7 +1152,7 @@ void ro_gui_toolbar_click(struct gui_window *g, wimp_pointer *pointer) "file://Docs/intro_%s", option_language); if (pointer->buttons == wimp_CLICK_SELECT) { - browser_window_go_post(g->bw, url, 0, 0, true, 0); + browser_window_go_post(g->bw, url, 0, 0, true, 0, false); } else { browser_window_create(url, NULL, 0); } @@ -1239,12 +1240,14 @@ void ro_gui_status_click(struct gui_window *g, wimp_pointer *pointer) void ro_gui_window_click(struct gui_window *g, wimp_pointer *pointer) { - int x, y; + int x, y, shift; wimp_window_state state; os_error *error; assert(g); + xosbyte1(osbyte_SCAN_KEYBOARD, 0 ^ 0x80, 0, &shift); + state.w = pointer->w; error = xwimp_get_window_state(&state); if (error) { @@ -1274,9 +1277,13 @@ void ro_gui_window_click(struct gui_window *g, wimp_pointer *pointer) ro_gui_create_menu(browser_menu, pointer->pos.x, pointer->pos.y, g); else if (pointer->buttons == wimp_CLICK_SELECT) - browser_window_mouse_click(g->bw, BROWSER_MOUSE_CLICK_1, x, y); + browser_window_mouse_click(g->bw, + (shift == 0xff) ? BROWSER_MOUSE_CLICK_1_MOD + : BROWSER_MOUSE_CLICK_1, x, y); else if (pointer->buttons == wimp_CLICK_ADJUST) - browser_window_mouse_click(g->bw, BROWSER_MOUSE_CLICK_2, x, y); + browser_window_mouse_click(g->bw, + (shift == 0xff) ? BROWSER_MOUSE_CLICK_2_MOD + : BROWSER_MOUSE_CLICK_2, x, y); } @@ -1511,7 +1518,7 @@ bool ro_gui_window_keypress(struct gui_window *g, int key, bool toolbar) res = url_normalize(toolbar_url, &url); if (res == URL_FUNC_OK) { gui_window_set_url(g, url); - browser_window_go(g->bw, url, 0); + browser_window_go(g->bw, url, 0, false); free(url); } return true; -- cgit v1.2.3