diff options
Diffstat (limited to 'src/nav.c')
-rw-r--r-- | src/nav.c | 45 |
1 files changed, 21 insertions, 24 deletions
@@ -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 */ |