diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2005-11-01 20:46:07 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2005-11-01 20:46:07 +0800 |
commit | ac160bd5b4143c52f8a75c049a27f56136ce1bae (patch) | |
tree | fd6b2290b725692501f98e01faf5cadb9ac01d21 /src/ephy-tab.c | |
parent | 709f0858814f1ece4bdeb288c2a4ae907a08c358 (diff) | |
download | gsoc2013-epiphany-ac160bd5b4143c52f8a75c049a27f56136ce1bae.tar gsoc2013-epiphany-ac160bd5b4143c52f8a75c049a27f56136ce1bae.tar.gz gsoc2013-epiphany-ac160bd5b4143c52f8a75c049a27f56136ce1bae.tar.bz2 gsoc2013-epiphany-ac160bd5b4143c52f8a75c049a27f56136ce1bae.tar.lz gsoc2013-epiphany-ac160bd5b4143c52f8a75c049a27f56136ce1bae.tar.xz gsoc2013-epiphany-ac160bd5b4143c52f8a75c049a27f56136ce1bae.tar.zst gsoc2013-epiphany-ac160bd5b4143c52f8a75c049a27f56136ce1bae.zip |
Get the window name from the popup-blocked event.
2005-11-01 Christian Persch <chpe@cvs.gnome.org>
* embed/ephy-embed.c: (ephy_embed_base_init):
* embed/ephy-embed.h:
* embed/mozilla/EphyBrowser.cpp:
* src/ephy-tab.c: (popups_manager_free_info), (popups_manager_add),
(popups_manager_show), (popups_manager_hide),
(ephy_tab_popup_blocked_cb):
Get the window name from the popup-blocked event.
Diffstat (limited to 'src/ephy-tab.c')
-rw-r--r-- | src/ephy-tab.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/src/ephy-tab.c b/src/ephy-tab.c index 0546a96f2..ceabed0bf 100644 --- a/src/ephy-tab.c +++ b/src/ephy-tab.c @@ -139,6 +139,7 @@ enum typedef struct { char *url; + char *name; char *features; } PopupInfo; @@ -522,6 +523,7 @@ static void popups_manager_free_info (PopupInfo *popup) { g_free (popup->url); + g_free (popup->name); g_free (popup->features); g_free (popup); } @@ -529,8 +531,10 @@ popups_manager_free_info (PopupInfo *popup) static void popups_manager_add (EphyTab *tab, const char *url, + const char *name, const char *features) { + EphyTabPrivate *priv = tab->priv; PopupInfo *popup; LOG ("popups_manager_add: tab %p, url %s, features %s", @@ -541,10 +545,10 @@ popups_manager_add (EphyTab *tab, popup = g_new0 (PopupInfo, 1); popup->url = g_strdup (url); + popup->name = g_strdup (name); popup->features = g_strdup (features); - tab->priv->hidden_popups = g_slist_prepend - (tab->priv->hidden_popups, popup); + priv->hidden_popups = g_slist_prepend (priv->hidden_popups, popup); if (popup_blocker_n_hidden (tab) > MAX_HIDDEN_POPUPS) /* bug #160863 */ { @@ -661,8 +665,8 @@ popups_manager_show (PopupInfo *popup, single = EPHY_EMBED_SINGLE (ephy_embed_shell_get_embed_single (embed_shell)); - ephy_embed_single_open_window (single, embed, popup->url, "", - popup->features); + ephy_embed_single_open_window (single, embed, popup->url, + popup->name, popup->features); popups_manager_free_info (popup); } @@ -720,7 +724,7 @@ popups_manager_hide (EphyWindow *window, features = popups_manager_new_window_info (window); - popups_manager_add (parent_tab, location, features); + popups_manager_add (parent_tab, location, "" /* FIXME? maybe _blank? */, features); gtk_widget_destroy (GTK_WIDGET (window)); @@ -1778,10 +1782,13 @@ ephy_tab_new_window_cb (EphyEmbed *embed, } static void -ephy_tab_popup_blocked_cb (EphyEmbed *embed, const char *url, - const char *features, EphyTab *tab) +ephy_tab_popup_blocked_cb (EphyEmbed *embed, + const char *url, + const char *name, + const char *features, + EphyTab *tab) { - popups_manager_add (tab, url, features); + popups_manager_add (tab, url, name, features); } static void |