aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ephy-session.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/ephy-session.c b/src/ephy-session.c
index 3a0f197a3..044b75414 100644
--- a/src/ephy-session.c
+++ b/src/ephy-session.c
@@ -256,6 +256,7 @@ session_command_open_uris (EphySession *session,
EphyNewTabFlags flags = 0;
guint i;
gboolean new_windows_in_tabs;
+ gboolean have_uris;
shell = ephy_shell_get_default ();
@@ -266,6 +267,8 @@ session_command_open_uris (EphySession *session,
new_windows_in_tabs = g_settings_get_boolean (EPHY_SETTINGS_MAIN,
EPHY_PREFS_NEW_WINDOWS_IN_TABS);
+ have_uris = ! (g_strv_length (uris) == 1 && g_str_equal (uris[0], ""));
+
if (options != NULL && strstr (options, "external") != NULL)
{
flags |= EPHY_NEW_TAB_FROM_EXTERNAL;
@@ -276,12 +279,17 @@ session_command_open_uris (EphySession *session,
flags |= EPHY_NEW_TAB_IN_NEW_WINDOW;
}
else if ((options != NULL && strstr (options, "new-tab") != NULL) ||
- new_windows_in_tabs)
+ (new_windows_in_tabs && have_uris))
{
flags |= EPHY_NEW_TAB_IN_EXISTING_WINDOW |
EPHY_NEW_TAB_JUMP |
EPHY_NEW_TAB_PRESENT_WINDOW;
}
+ else if (!have_uris)
+ {
+ window = NULL;
+ flags |= EPHY_NEW_TAB_IN_NEW_WINDOW;
+ }
for (i = 0; uris[i] != NULL; ++i)
{