aboutsummaryrefslogtreecommitdiffstats
path: root/embed/ephy-web-view.c
diff options
context:
space:
mode:
authorXan Lopez <xan@gnome.org>2010-05-02 21:40:16 +0800
committerXan Lopez <xan@gnome.org>2010-05-03 19:40:33 +0800
commit769b30d8448f3b87cdc6967d3c0dbae31e44eaf8 (patch)
tree2c55142283b02f8d28909649018ead1fab82dbc1 /embed/ephy-web-view.c
parentd60afa35bed002f98996fbdeb6a34ad01cc5b2cf (diff)
downloadgsoc2013-epiphany-769b30d8448f3b87cdc6967d3c0dbae31e44eaf8.tar.gz
gsoc2013-epiphany-769b30d8448f3b87cdc6967d3c0dbae31e44eaf8.tar.zst
gsoc2013-epiphany-769b30d8448f3b87cdc6967d3c0dbae31e44eaf8.zip
Move title update to EphyWebView
Does not really make sense for the EphyEmbed container to connect to its child signal and then update its title, let the child itself handle it.
Diffstat (limited to 'embed/ephy-web-view.c')
-rw-r--r--embed/ephy-web-view.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/embed/ephy-web-view.c b/embed/ephy-web-view.c
index 4fa85d126..61b973255 100644
--- a/embed/ephy-web-view.c
+++ b/embed/ephy-web-view.c
@@ -1300,6 +1300,40 @@ ephy_web_view_finalize (GObject *object)
}
static void
+title_changed_cb (WebKitWebView *web_view,
+ GParamSpec *spec,
+ gpointer data)
+{
+ const char *uri;
+ char *title;
+ WebKitWebFrame *frame;
+ EphyHistory *history = EPHY_HISTORY (ephy_embed_shell_get_global_history (ephy_embed_shell_get_default ()));
+
+ g_object_get (web_view, "title", &title, NULL);
+
+ ephy_web_view_set_title (EPHY_WEB_VIEW (web_view),
+ title);
+
+ frame = webkit_web_view_get_main_frame (web_view);
+ uri = webkit_web_frame_get_uri (frame);
+ ephy_history_set_page_title (history,
+ uri,
+ title);
+ g_free (title);
+
+}
+
+static void
+ephy_web_view_constructed (GObject *object)
+{
+ EphyWebView *web_view = EPHY_WEB_VIEW (object);
+
+ g_object_connect (web_view,
+ "signal::notify::title", G_CALLBACK (title_changed_cb), NULL,
+ NULL);
+}
+
+static void
ephy_web_view_class_init (EphyWebViewClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
@@ -1309,6 +1343,7 @@ ephy_web_view_class_init (EphyWebViewClass *klass)
gobject_class->finalize = ephy_web_view_finalize;
gobject_class->get_property = ephy_web_view_get_property;
gobject_class->set_property = ephy_web_view_set_property;
+ gobject_class->constructed = ephy_web_view_constructed;
widget_class->button_press_event = ephy_web_view_button_press_event;
widget_class->key_press_event = ephy_web_view_key_press_event;