aboutsummaryrefslogtreecommitdiffstats
path: root/embed
diff options
context:
space:
mode:
Diffstat (limited to 'embed')
-rw-r--r--embed/ephy-embed.c5
-rw-r--r--embed/ephy-embed.h3
-rw-r--r--embed/mozilla/mozilla-embed.cpp11
3 files changed, 13 insertions, 6 deletions
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index f8e9cadc1..ead39fde1 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -144,9 +144,10 @@ ephy_embed_base_init (gpointer g_class)
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (EphyEmbedClass, location),
NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
+ ephy_marshal_VOID__STRING,
G_TYPE_NONE,
- 0);
+ 1,
+ G_TYPE_STRING);
ephy_embed_signals[TITLE] =
g_signal_new ("ge_title",
EPHY_EMBED_TYPE,
diff --git a/embed/ephy-embed.h b/embed/ephy-embed.h
index 1564d0b35..376213c0e 100644
--- a/embed/ephy-embed.h
+++ b/embed/ephy-embed.h
@@ -172,7 +172,8 @@ struct EphyEmbedClass
const char *link);
void (* js_status) (EphyEmbed *embed,
const char *status);
- void (* location) (EphyEmbed *embed);
+ void (* location) (EphyEmbed *embed,
+ const char *location);
void (* title) (EphyEmbed *embed);
void (* progress) (EphyEmbed *embed,
const char *uri,
diff --git a/embed/mozilla/mozilla-embed.cpp b/embed/mozilla/mozilla-embed.cpp
index 831e9d059..941698dfe 100644
--- a/embed/mozilla/mozilla-embed.cpp
+++ b/embed/mozilla/mozilla-embed.cpp
@@ -704,8 +704,9 @@ impl_get_location (EphyEmbed *embed,
if (toplevel)
{
- l = gtk_moz_embed_get_location
- (GTK_MOZ_EMBED(embed));
+ rv = wrapper->GetMainDocumentUrl (url);
+ l = (NS_SUCCEEDED (rv) && !url.IsEmpty()) ?
+ g_strdup (url.get()) : NULL;
}
else
{
@@ -1187,7 +1188,11 @@ mozilla_embed_location_changed_cb (GtkMozEmbed *embed,
* to know about it. */
if (membed->priv->no_page != 0)
{
- g_signal_emit_by_name (membed, "ge_location");
+ char *location;
+
+ location = gtk_moz_embed_get_location (embed);
+ g_signal_emit_by_name (membed, "ge_location", location);
+ g_free (location);
}
membed->priv->no_page = -1;