aboutsummaryrefslogtreecommitdiffstats
path: root/embed
diff options
context:
space:
mode:
authorChristian Persch <chpe@cvs.gnome.org>2005-11-01 20:46:07 +0800
committerChristian Persch <chpe@src.gnome.org>2005-11-01 20:46:07 +0800
commitac160bd5b4143c52f8a75c049a27f56136ce1bae (patch)
treefd6b2290b725692501f98e01faf5cadb9ac01d21 /embed
parent709f0858814f1ece4bdeb288c2a4ae907a08c358 (diff)
downloadgsoc2013-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.c6
-rw-r--r--embed/ephy-embed.h1
-rw-r--r--embed/mozilla/EphyBrowser.cpp14
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;