diff options
-rw-r--r-- | embed/ephy-embed.c | 24 | ||||
-rw-r--r-- | 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 @@ -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; |