aboutsummaryrefslogtreecommitdiffstats
path: root/src/ephy-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ephy-window.c')
-rw-r--r--src/ephy-window.c20
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)
{