[epiphany] Move title update to EphyWebView
- From: Xan Lopez <xan src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [epiphany] Move title update to EphyWebView
- Date: Mon, 3 May 2010 11:41:16 +0000 (UTC)
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]