From af014bce99d4990f1a0cbb1a779127de0f716a90 Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Mon, 10 Feb 2014 14:08:45 +0000 Subject: Allow tab creation without history clone. Changes browser_window_create and browser_window_navigate flags. --- desktop/browser.h | 55 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 33 insertions(+), 22 deletions(-) (limited to 'desktop/browser.h') diff --git a/desktop/browser.h b/desktop/browser.h index 39f8b8901..4cb8e012a 100644 --- a/desktop/browser.h +++ b/desktop/browser.h @@ -62,42 +62,53 @@ typedef enum { extern bool browser_reformat_pending; -/** flags to browser window go */ +/** flags to browser_window_create */ +enum browser_window_create_flags { + /** No flags set */ + BW_CREATE_NONE = 0, + + /** this will form a new history node (don't set for back/reload/etc) */ + BW_CREATE_HISTORY = (1 << 0), + + /** New gui_window to be tab in same window as "existing" gui_window */ + BW_CREATE_TAB = (1 << 1), + + /** New gui_window to be clone of "existing" gui_window */ + BW_CREATE_CLONE = (1 << 2), + + /** Window not opened by user interaction (e.g. JS popup) */ + BW_CREATE_UNVERIFIABLE = (1 << 3), +}; + +/** flags to browser_window_navigate */ enum browser_window_nav_flags { /** No flags set */ - BROWSER_WINDOW_NONE = 0, + BW_NAVIGATE_NONE = 0, /** this will form a new history node (don't set for back/reload/etc) */ - BROWSER_WINDOW_HISTORY = (1 << 0), + BW_NAVIGATE_HISTORY = (1 << 0), /** download rather than render the uri */ - BROWSER_WINDOW_DOWNLOAD = (1 << 1), + BW_NAVIGATE_DOWNLOAD = (1 << 1), /** this transaction is verifiable */ - BROWSER_WINDOW_VERIFIABLE = (1 << 2), - - /** New gui_window to be tab in same window as "existing" gui_window */ - BROWSER_WINDOW_TAB = (1 << 3), - - /** New gui_window to be clone of "existing" gui_window */ - BROWSER_WINDOW_CLONE = (1 << 4) + BW_NAVIGATE_VERIFIABLE = (1 << 2) }; /** * Create and open a new root browser window with the given page. * - * \param flags Flags to control operation - * \param url URL to start fetching in the new window or NULL for blank - * \param referer The referring uri or NULL if none - * \param clone The browser window to clone - * \param bw pointer to created browser window or untouched on error. - * \return error code + * \param flags Flags to control operation + * \param url URL to fetch in the new window or NULL for blank + * \param referer The referring uri or NULL if none + * \param existing The an existing bw or NULL, required for some flags. + * \param bw Updated to created browser window or untouched on error. + * \return NSERROR_OK, or appropriate error otherwise. */ -nserror browser_window_create(enum browser_window_nav_flags flags, - nsurl *url, - nsurl *referrer, - struct browser_window *clone, - struct browser_window **bw); +nserror browser_window_create(enum browser_window_create_flags flags, + nsurl *url, nsurl *referrer, + struct browser_window *existing, + struct browser_window **bw); /** * Start fetching a page in a browser window. -- cgit v1.2.3