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 /embed | |
parent | 709f0858814f1ece4bdeb288c2a4ae907a08c358 (diff) | |
download | gsoc2013-epiphany-ac160bd5b4143c52f8a75c049a27f56136ce1bae.tar.gz 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 'embed')
-rw-r--r-- | embed/ephy-embed.c | 6 | ||||
-rw-r--r-- | embed/ephy-embed.h | 1 | ||||
-rw-r--r-- | embed/mozilla/EphyBrowser.cpp | 14 |
3 files changed, 18 insertions, 3 deletions
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c index 8c27762e8..2c6a97b25 100644 --- a/embed/ephy-embed.c +++ b/embed/ephy-embed.c @@ -79,6 +79,7 @@ ephy_embed_base_init (gpointer g_class) * EphyEmbed::ge-popup-blocked: * @embed: * @address: The requested URL + * @target: The requested window name, e.g. "_blank" * @features: The requested features: for example, "height=400,width=200" * * The ::ge_popup_blocked signal is emitted when the viewed web page requests @@ -89,9 +90,10 @@ ephy_embed_base_init (gpointer g_class) G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (EphyEmbedIface, popup_blocked), NULL, NULL, - ephy_marshal_VOID__STRING_STRING, + ephy_marshal_VOID__STRING_STRING_STRING, G_TYPE_NONE, - 2, + 3, + G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_STRING | G_SIGNAL_TYPE_STATIC_SCOPE); /** diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h index 4f268cd3b..02d3f3cb6 100644 --- a/embed/ephy-embed.h +++ b/embed/ephy-embed.h @@ -134,6 +134,7 @@ struct _EphyEmbedIface gpointer event); void (* popup_blocked) (EphyEmbed *embed, const char *address, + const char *target, const char *features); void (* security_change) (EphyEmbed *embed, EphyEmbedSecurityLevel level); diff --git a/embed/mozilla/EphyBrowser.cpp b/embed/mozilla/EphyBrowser.cpp index 06f84bd94..7bfda8bcc 100644 --- a/embed/mozilla/EphyBrowser.cpp +++ b/embed/mozilla/EphyBrowser.cpp @@ -367,8 +367,20 @@ EphyPopupBlockEventListener::HandleEvent (nsIDOMEvent * aDOMEvent) NS_CSTRING_ENCODING_UTF8, popupWindowFeaturesString); - g_signal_emit_by_name(mOwner->mEmbed, "ge_popup_blocked", + nsEmbedCString popupWindowNameString; +#ifdef HAVE_GECKO_1_9 + nsEmbedString popupWindowName; + rv = popupEvent->GetPopupWindowName (popupWindowName); + NS_ENSURE_SUCCESS (rv, NS_ERROR_FAILURE); + + NS_UTF16ToCString (popupWindowName, + NS_CSTRING_ENCODING_UTF8, + popupWindowNameString); +#endif + + g_signal_emit_by_name(mOwner->mEmbed, "ge-popup-blocked", popupWindowURIString.get(), + popupWindowNameString.get(), popupWindowFeaturesString.get()); return NS_OK; |