[epiphany] Move title update to EphyWebView



commit 769b30d8448f3b87cdc6967d3c0dbae31e44eaf8
Author: Xan Lopez <xan gnome org>
Date:   Sun May 2 15:40:16 2010 +0200

    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 87db4ff..e9c210e 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -89,29 +89,6 @@ uri_changed_cb (WebKitWebView *web_view,
 }
 
 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 4fa85d1..61b9732 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;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]