summaryrefslogtreecommitdiff
path: root/riscos/dialog.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2013-02-14 18:21:11 +0000
committerVincent Sanders <vince@netsurf-browser.org>2013-02-18 11:23:48 +0000
commitb112dec78d5e8289ded3f61db96e495690ae96b5 (patch)
tree9babaed21ed2eb841b8d398e28814544c73656d9 /riscos/dialog.c
parent3bfb5b96a7c7cb2718a60987e69cd659ed49b9d8 (diff)
downloadnetsurf-b112dec78d5e8289ded3f61db96e495690ae96b5.tar.gz
netsurf-b112dec78d5e8289ded3f61db96e495690ae96b5.tar.bz2
change browser_window_create and refactor all callsites
Diffstat (limited to 'riscos/dialog.c')
-rw-r--r--riscos/dialog.c34
1 files changed, 26 insertions, 8 deletions
diff --git a/riscos/dialog.c b/riscos/dialog.c
index 1fabbcb5e..d66b1cb08 100644
--- a/riscos/dialog.c
+++ b/riscos/dialog.c
@@ -705,17 +705,35 @@ void ro_gui_dialog_update_zoom(struct gui_window *g) {
bool ro_gui_dialog_openurl_apply(wimp_w w) {
- const char *url;
+ const char *urltxt;
char *url2;
+ nsurl *url;
+ nserror error;
- url = ro_gui_get_icon_string(w, ICON_OPENURL_URL);
- url2 = strdup(url);
- if (url2 != NULL) {
- browser_window_create(url2, 0, 0, true, false);
- free(url2);
- return true;
+ urltxt = ro_gui_get_icon_string(w, ICON_OPENURL_URL);
+ url2 = strdup(urltxt); /** @todo why is this copied */
+ if (url2 == NULL) {
+ return false;
+ }
+
+ error = nsurl_create(url2, &url);
+ free(url2);
+ if (error == NSERROR_OK) {
+ error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE |
+ BROWSER_WINDOW_GO_FLAG_HISTORY,
+ url,
+ NULL,
+ NULL,
+ NULL);
+ nsurl_unref(url);
}
- return false;
+ if (error != NSERROR_OK) {
+ warn_user(messages_get_errorcode(error), 0);
+ return false;
+ }
+
+ return true;
+
}