From 769b30d8448f3b87cdc6967d3c0dbae31e44eaf8 Mon Sep 17 00:00:00 2001 From: Xan Lopez Date: Sun, 2 May 2010 15:40:16 +0200 Subject: 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. --- embed/ephy-embed.c | 24 ------------------------ embed/ephy-web-view.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c index 87db4ffe2..e9c210eb2 100644 --- a/embed/ephy-embed.c +++ b/embed/ephy-embed.c @@ -88,29 +88,6 @@ uri_changed_cb (WebKitWebView *web_view, g_free (uri); } -static void -title_changed_cb (WebKitWebView *web_view, - GParamSpec *spec, - EphyEmbed *embed) -{ - const char *uri; - char *title; - WebKitWebFrame *frame; - - 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 (EPHY_EMBED (embed)->priv->history, - uri, - title); - g_free (title); - -} - static void restore_zoom_level (EphyEmbed *embed, const char *address) @@ -852,7 +829,6 @@ ephy_embed_constructed (GObject *object) "signal::hovering-over-link", G_CALLBACK (hovering_over_link_cb), embed, "signal::download-requested", G_CALLBACK (download_requested_cb), embed, "signal::notify::zoom-level", G_CALLBACK (zoom_changed_cb), embed, - "signal::notify::title", G_CALLBACK (title_changed_cb), embed, "signal::notify::uri", G_CALLBACK (uri_changed_cb), embed, NULL); 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 @@ -1299,6 +1299,40 @@ ephy_web_view_finalize (GObject *object) G_OBJECT_CLASS (ephy_web_view_parent_class)->finalize (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) { @@ -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; -- cgit v1.2.3