diff --git a/src/ghtml-webkit.c b/src/ghtml-webkit.c
index 92c80c0..5ce9306 100644
--- a/src/ghtml-webkit.c
+++ b/src/ghtml-webkit.c
@@ -27,6 +27,8 @@ static WebKitWebView * _on_create_web_view(WebKitWebView * view,
WebKitWebFrame * frame, gpointer data);
static void _on_hovering_over_link(WebKitWebView * view, const gchar * title,
const gchar * url, gpointer data);
+static void _on_load_committed(WebKitWebView * view, WebKitWebFrame * frame,
+ gpointer data);
static void _on_load_finished(WebKitWebView * view, WebKitWebFrame * frame,
gpointer data);
static void _on_load_progress_changed(WebKitWebView * view, gint progress,
@@ -62,6 +64,8 @@ GtkWidget * ghtml_new(Surfer * surfer)
_on_create_web_view), widget);
g_signal_connect(G_OBJECT(view), "hovering-over-link", G_CALLBACK(
_on_hovering_over_link), widget);
+ g_signal_connect(G_OBJECT(view), "load-committed", G_CALLBACK(
+ _on_load_committed), widget);
g_signal_connect(G_OBJECT(view), "load-finished", G_CALLBACK(
_on_load_finished), widget);
g_signal_connect(G_OBJECT(view), "load-progress-changed", G_CALLBACK(
@@ -274,6 +278,19 @@ static void _on_hovering_over_link(WebKitWebView * view, const gchar * title,
}
+static void _on_load_committed(WebKitWebView * view, WebKitWebFrame * frame,
+ gpointer data)
+{
+ Surfer * surfer;
+ char const * location;
+
+ surfer = g_object_get_data(G_OBJECT(data), "surfer");
+ if(frame == webkit_web_view_get_main_frame(view)
+ && (location = webkit_web_frame_get_uri(frame)) != NULL)
+ surfer_set_location(surfer, location);
+}
+
+
static void _on_load_finished(WebKitWebView * view, WebKitWebFrame * arg1,
gpointer data)
{