summaryrefslogtreecommitdiff
path: root/desktop/global_history.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-07-02 12:20:44 +0100
committerMichael Drake <tlsa@netsurf-browser.org>2013-07-02 12:20:44 +0100
commit6014a35ed3cb767166d281566d3d7abc4d8ee932 (patch)
treee5d71b56e3e08564cef8321576af4ac3daf751f3 /desktop/global_history.c
parent2476af4c65add3b94e4b1a30c0f17cd7b78f1256 (diff)
downloadnetsurf-6014a35ed3cb767166d281566d3d7abc4d8ee932.tar.gz
netsurf-6014a35ed3cb767166d281566d3d7abc4d8ee932.tar.bz2
Implement entry launching. Currently only launches in new window.
Diffstat (limited to 'desktop/global_history.c')
-rw-r--r--desktop/global_history.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/desktop/global_history.c b/desktop/global_history.c
index ee09c1cdb..29d744e0a 100644
--- a/desktop/global_history.c
+++ b/desktop/global_history.c
@@ -648,6 +648,29 @@ static nserror global_history_tree_node_entry_cb(
break;
case TREE_MSG_NODE_LAUNCH:
+ {
+ nserror error;
+ struct browser_window *clone = NULL;
+ enum browser_window_nav_flags flags =
+ BROWSER_WINDOW_VERIFIABLE |
+ BROWSER_WINDOW_HISTORY |
+ BROWSER_WINDOW_TAB;
+
+ /* TODO: Set clone window, to window that new tab appears in */
+
+ if (msg.data.node_launch.mouse &
+ (BROWSER_MOUSE_MOD_1 | BROWSER_MOUSE_MOD_2) ||
+ clone == NULL) {
+ /* Shift or Ctrl launch, open in new window rather
+ * than tab. */
+ flags ^= BROWSER_WINDOW_TAB;
+ }
+
+ error = browser_window_create(flags, e->url, NULL, clone, NULL);
+ if (error != NSERROR_OK) {
+ warn_user(messages_get_errorcode(error), 0);
+ }
+ }
break;
}
return NSERROR_OK;