From b112dec78d5e8289ded3f61db96e495690ae96b5 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Thu, 14 Feb 2013 18:21:11 +0000 Subject: change browser_window_create and refactor all callsites --- beos/gui.cpp | 29 ++++++++++++++++++++++++----- beos/scaffolding.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++---------- 2 files changed, 66 insertions(+), 15 deletions(-) (limited to 'beos') diff --git a/beos/gui.cpp b/beos/gui.cpp index c556d45e5..3a164133f 100644 --- a/beos/gui.cpp +++ b/beos/gui.cpp @@ -426,14 +426,33 @@ nsurl *gui_get_resource_url(const char *path) static void gui_init2(int argc, char** argv) { - const char *addr = NETSURF_HOMEPAGE; + const char *addr; + nsurl *url; + nserror error; - if (nsoption_charp(homepage_url) != NULL) + if (argc > 1) { + addr = argv[1]; + } else if (nsoption_charp(homepage_url) != NULL) { addr = nsoption_charp(homepage_url); + } else { + addr = NETSURF_HOMEPAGE; + } + + /* create an initial browser window */ + error = nsurl_create(addr, &url); + 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); + } + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } - if (argc > 1) addr = argv[1]; - if (gFirstRefsReceived) addr = NULL; - browser_window_create(addr, 0, 0, true, false); if (gFirstRefsReceived) { // resend the refs we got before having a window to send them to be_app_messenger.SendMessage(gFirstRefsReceived); diff --git a/beos/scaffolding.cpp b/beos/scaffolding.cpp index 0a337685d..53a4a7b5b 100644 --- a/beos/scaffolding.cpp +++ b/beos/scaffolding.cpp @@ -786,9 +786,7 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m nserror error; error = nsurl_create(url.String(), &nsurl); - if (error != NSERROR_OK) { - warn_user(messages_get_errorcode(error), 0); - } else { + if (error == NSERROR_OK) { if (/*message->WasDropped() &&*/ i == 0) { browser_window_navigate(bw, nsurl, @@ -799,21 +797,40 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m NULL, NULL); } else { - browser_window_create(nsurl, NULL, bw, false, false); + error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE, + nsurl, + NULL, + bw, + NULL); } nsurl_unref(nsurl); } - - + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } } break; } case B_ARGV_RECEIVED: { int32 i; - BString url; - for (i = 1; message->FindString("argv", i, &url) >= B_OK; i++) { - browser_window_create(url.String(), bw, NULL, false, false); + BString urltxt; + nsurl *url; + nserror error; + + for (i = 1; message->FindString("argv", i, &urltxt) >= B_OK; i++) { + error = nsurl_create(urltxt.String(), &url); + if (error == NSERROR_OK) { + error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE, + url, + NULL, + bw, + NULL); + nsurl_unref(url); + } + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } } break; } @@ -1010,13 +1027,28 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m case BROWSER_NEW_WINDOW: { BString text; + nsurl *url; + nserror error; + if (!scaffold->url_bar->LockLooper()) break; text = scaffold->url_bar->Text(); scaffold->url_bar->UnlockLooper(); NSBrowserWindow::activeWindow = scaffold->window; - browser_window_create(text.String(), bw, NULL, false, false); + + error = nsurl_create(text.String(), &url); + if (error == NSERROR_OK) { + error = browser_window_create(BROWSER_WINDOW_GO_FLAG_VERIFIABLE, + url, + NULL, + bw, + NULL); + nsurl_unref(url); + } + if (error != NSERROR_OK) { + warn_user(messages_get_errorcode(error), 0); + } break; } case BROWSER_VIEW_SOURCE: -- cgit v1.2.3