aboutsummaryrefslogtreecommitdiff
path: root/src/nav.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nav.c')
-rw-r--r--src/nav.c45
1 files changed, 21 insertions, 24 deletions
diff --git a/src/nav.c b/src/nav.c
index c5311cfb..bea90dd3 100644
--- a/src/nav.c
+++ b/src/nav.c
@@ -195,13 +195,12 @@ static void Nav_open_url(BrowserWindow *bw, const DilloUrl *url,
const DilloUrl *requester, int offset)
{
const DilloUrl *old_url;
- bool_t MustLoad, ForceReload, Repush, IgnoreScroll;
+ bool_t MustLoad, ForceReload, IgnoreScroll;
int x, y, idx, ClientKey;
DilloWeb *Web;
MSG("Nav_open_url: new url='%s'\n", URL_STR_(url));
- Repush = (URL_FLAGS(url) & URL_ReloadFromCache) != 0;
ForceReload = (URL_FLAGS(url) & (URL_E2EQuery + URL_ReloadFromCache)) != 0;
IgnoreScroll = (URL_FLAGS(url) & URL_IgnoreScroll) != 0;
@@ -233,8 +232,7 @@ static void Nav_open_url(BrowserWindow *bw, const DilloUrl *url,
// a_Menu_pagemarks_new(bw);
- Web = a_Web_new(url, requester);
- Web->bw = bw;
+ Web = a_Web_new(bw, url, requester);
Web->flags |= WEB_RootUrl;
if ((ClientKey = a_Capi_open_url(Web, NULL, NULL)) != 0) {
a_Bw_add_client(bw, ClientKey, 1);
@@ -249,10 +247,9 @@ static void Nav_open_url(BrowserWindow *bw, const DilloUrl *url,
*/
void a_Nav_cancel_expect(BrowserWindow *bw)
{
- if (bw->nav_expecting) {
- a_Url_free(bw->nav_expect_url);
- bw->nav_expect_url = NULL;
- bw->nav_expecting = FALSE;
+ if (a_Bw_expecting(bw)) {
+ a_Bw_cancel_expect(bw);
+ a_UIcmd_set_buttons_sens(bw);
}
if (bw->meta_refresh_status > 0)
--bw->meta_refresh_status;
@@ -263,7 +260,7 @@ void a_Nav_cancel_expect(BrowserWindow *bw)
*/
void a_Nav_cancel_expect_if_eq(BrowserWindow *bw, const DilloUrl *url)
{
- if (bw->nav_expecting && a_Url_cmp(url, bw->nav_expect_url) == 0)
+ if (a_Url_cmp(url, a_Bw_expected_url(bw)) == 0)
a_Nav_cancel_expect(bw);
}
@@ -281,8 +278,8 @@ void a_Nav_expect_done(BrowserWindow *bw)
dReturn_if_fail(bw != NULL);
- if (bw->nav_expecting) {
- url = bw->nav_expect_url;
+ if (a_Bw_expecting(bw)) {
+ url = a_Url_dup(a_Bw_expected_url(bw));
reload = (URL_FLAGS(url) & URL_ReloadPage);
repush = (URL_FLAGS(url) & URL_ReloadFromCache);
e2equery = (URL_FLAGS(url) & URL_E2EQuery);
@@ -293,6 +290,7 @@ void a_Nav_expect_done(BrowserWindow *bw)
m = URL_E2EQuery|URL_ReloadPage|URL_ReloadFromCache|URL_IgnoreScroll;
a_Url_set_flags(url, URL_FLAGS(url) & ~m);
url_idx = a_History_add_url(url);
+ a_Url_free(url);
if (repush) {
MSG("a_Nav_expect_done: repush!\n");
@@ -345,16 +343,17 @@ void a_Nav_expect_done(BrowserWindow *bw)
void a_Nav_push(BrowserWindow *bw, const DilloUrl *url,
const DilloUrl *requester)
{
+ const DilloUrl *e_url;
dReturn_if_fail (bw != NULL);
- if (bw->nav_expecting && !a_Url_cmp(bw->nav_expect_url, url) &&
- !strcmp(URL_FRAGMENT(bw->nav_expect_url),URL_FRAGMENT(url))) {
+ e_url = a_Bw_expected_url(bw);
+ if (e_url && !a_Url_cmp(e_url, url) &&
+ !strcmp(URL_FRAGMENT(e_url),URL_FRAGMENT(url))) {
/* we're already expecting that url (most probably a double-click) */
return;
}
a_Nav_cancel_expect(bw);
- bw->nav_expect_url = a_Url_dup(url);
- bw->nav_expecting = TRUE;
+ a_Bw_expect(bw, url);
Nav_open_url(bw, url, requester, 0);
}
@@ -370,8 +369,7 @@ static void Nav_repush(BrowserWindow *bw)
url = a_Url_dup(a_History_get_url(NAV_TOP_UIDX(bw)));
/* Let's make reload be from Cache */
a_Url_set_flags(url, URL_FLAGS(url) | URL_ReloadFromCache);
- bw->nav_expect_url = a_Url_dup(url);
- bw->nav_expecting = TRUE;
+ a_Bw_expect(bw, url);
Nav_open_url(bw, url, NULL, 0);
a_Url_free(url);
}
@@ -488,9 +486,9 @@ static void Nav_reload_callback(void *data)
confirmed = 0;
} else if (URL_FLAGS(h_url) & URL_Post) {
/* Attempt to repost data, let's confirm... */
- choice = a_Dialog_choice3("Repost form data?",
- "Yes", "*No", "Cancel");
- confirmed = (choice == 0); /* "Yes" */
+ choice = a_Dialog_choice5("Repost form data?",
+ "No", "Yes", "Cancel", NULL, NULL);
+ confirmed = (choice == 2); /* "Yes" */
}
if (confirmed) {
@@ -501,9 +499,9 @@ static void Nav_reload_callback(void *data)
a_Url_set_flags(r_url, URL_FLAGS(r_url) | URL_E2EQuery);
/* This is an explicit reload, so clear the SpamSafe flag */
a_Url_set_flags(r_url, URL_FLAGS(r_url) & ~URL_SpamSafe);
- bw->nav_expect_url = r_url;
- bw->nav_expecting = TRUE;
+ a_Bw_expect(bw, r_url);
Nav_open_url(bw, r_url, NULL, 0);
+ a_Url_free(r_url);
}
}
}
@@ -567,8 +565,7 @@ static void Nav_save_cb(int Op, CacheClient_t *Client)
void a_Nav_save_url(BrowserWindow *bw,
const DilloUrl *url, const char *filename)
{
- DilloWeb *Web = a_Web_new(url, NULL);
- Web->bw = bw;
+ DilloWeb *Web = a_Web_new(bw, url, NULL);
Web->filename = dStrdup(filename);
Web->flags |= WEB_Download;
/* TODO: keep track of this client */