[epiphany] ephy-embed.c: update URL in location when clicking on #anchors



commit 553b5f4d4cf0ff8e782cbcc0117cc08d6eaae457
Author: Xan Lopez <xan gnome org>
Date:   Fri Aug 21 10:21:43 2009 +0300

    ephy-embed.c: update URL in location when clicking on #anchors
    
    Bug #584506

 embed/ephy-embed.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/embed/ephy-embed.c b/embed/ephy-embed.c
index f9f9c53..2a786e3 100644
--- a/embed/ephy-embed.c
+++ b/embed/ephy-embed.c
@@ -107,6 +107,26 @@ G_DEFINE_TYPE_WITH_CODE (EphyEmbed, ephy_embed, GTK_TYPE_SCROLLED_WINDOW,
                                                 ephy_command_manager_iface_init))
 
 static void
+uri_changed_cb (WebKitWebView *web_view,
+                GParamSpec *spec,
+                EphyEmbed *embed)
+{
+  char *uri;
+  const char *current_address;
+
+  g_object_get (web_view, "uri", &uri, NULL);
+  current_address = ephy_web_view_get_address (EPHY_WEB_VIEW (web_view));
+
+  /* We need to check if we get URI notifications without going
+     through the usual load process, as this can happen when changing
+     location within a page */
+  if (g_str_equal (uri, current_address) == FALSE)
+    ephy_web_view_set_address (EPHY_WEB_VIEW (web_view), uri);
+
+  g_free (uri);
+}
+
+static void
 title_changed_cb (WebKitWebView *web_view,
                   GParamSpec *spec,
                   EphyEmbed *embed)
@@ -683,6 +703,7 @@ ephy_embed_constructed (GObject *object)
                     "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);
 
   embed->priv->inspector_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);



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