diff options
Diffstat (limited to 'src/ephy-window.c')
-rw-r--r-- | src/ephy-window.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/ephy-window.c b/src/ephy-window.c index 04539f2b9..000c0fbab 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -2970,7 +2970,9 @@ ephy_window_open_link (EphyLink *link, tab = ephy_window_get_active_tab (window); } - if (flags != 0) + if (flags & (EPHY_LINK_JUMP_TO | + EPHY_LINK_NEW_TAB | + EPHY_LINK_NEW_WINDOW)) { EphyNewTabFlags ntflags = EPHY_NEW_TAB_OPEN_PAGE; @@ -2987,6 +2989,10 @@ ephy_window_open_link (EphyLink *link, { ntflags |= EPHY_NEW_TAB_IN_EXISTING_WINDOW; } + if (flags & EPHY_LINK_ALLOW_FIXUP) + { + ntflags |= EPHY_NEW_TAB_ALLOW_FIXUP; + } new_tab = ephy_shell_new_tab (ephy_shell, @@ -2999,7 +3005,17 @@ ephy_window_open_link (EphyLink *link, embed = ephy_tab_get_embed (tab); - ephy_embed_load_url (embed, address); + if (flags & EPHY_LINK_ALLOW_FIXUP) + { + ephy_embed_load (embed, + address, + EPHY_EMBED_LOAD_FLAGS_ALLOW_THIRD_PARTY_FIXUP, + NULL); + } + else + { + ephy_embed_load_url (embed, address); + } if (address == NULL || address[0] == '\0' || strcmp (address, "about:blank") == 0) { |