aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--embed/ephy-embed.c24
-rw-r--r--embed/ephy-web-view.c35
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
@@ -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 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;