diff options
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 21 | ||||
-rw-r--r-- | desktop/browser.h | 8 |
2 files changed, 29 insertions, 0 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index d9ad417ac..c9e36ee71 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -1974,6 +1974,27 @@ nserror browser_window_navigate(struct browser_window *bw, /* Exported interface, documented in browser.h */ +bool browser_window_up_available(struct browser_window *bw) +{ + bool result = false; + + if (bw != NULL && bw->current_content != NULL) { + nsurl *parent; + nserror err = nsurl_parent(hlcache_handle_get_url( + bw->current_content), &parent); + if (err == NSERROR_OK) { + result = nsurl_compare(hlcache_handle_get_url( + bw->current_content), parent, + NSURL_COMPLETE) == false; + nsurl_unref(parent); + } + } + + return result; +} + + +/* Exported interface, documented in browser.h */ nserror browser_window_navigate_up(struct browser_window *bw, bool new_window) { nsurl *current, *parent; diff --git a/desktop/browser.h b/desktop/browser.h index 9cc0ee47a..f4943172e 100644 --- a/desktop/browser.h +++ b/desktop/browser.h @@ -152,6 +152,14 @@ nserror browser_window_navigate(struct browser_window *bw, struct hlcache_handle *parent); /** + * Return true if a browser window can navigate upwards. + * + * \param bw the browser window to test. + * \return true if navigation up is possible otherwise false. + */ +bool browser_window_up_available(struct browser_window *bw); + +/** * Navigate to a browser_window's parent URL. * * \param bw browser window |