summaryrefslogtreecommitdiff
path: root/riscos
diff options
context:
space:
mode:
Diffstat (limited to 'riscos')
-rw-r--r--riscos/401login.c4
-rw-r--r--riscos/gui.c2
-rw-r--r--riscos/history.c2
-rw-r--r--riscos/menus.c4
-rw-r--r--riscos/plugin.c3
-rw-r--r--riscos/window.c19
6 files changed, 21 insertions, 13 deletions
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:/<NetSurf$Dir>/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 <time.h>
#include <string.h>
#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:/<NetSurf$Dir>/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;