summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hofmann <scm@uninformativ.de>2014-06-14 15:27:17 +0200
committerPeter Hofmann <scm@uninformativ.de>2014-06-14 15:27:17 +0200
commit8eb72e4255f3488c4f14ea28f7e1f3773d40b14a (patch)
treec0406e52815dab405cce7430c8cbb2eefcd9e3f9
parent5c38b7edf6bc4b4e84ec08d98e53f72ef2746956 (diff)
downloadlariza-8eb72e4255f3488c4f14ea28f7e1f3773d40b14a.tar.gz
Have the location bar follow the current URI
-rw-r--r--zea.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/zea.c b/zea.c
index be03c20..b590da7 100644
--- a/zea.c
+++ b/zea.c
@@ -22,6 +22,7 @@ static gboolean zea_new_client_request(WebKitWebView *, WebKitWebFrame *,
WebKitWebNavigationAction *,
WebKitWebPolicyDecision *, gpointer);
static void zea_title_changed(GObject *, GParamSpec *, gpointer);
+static void zea_uri_changed(GObject *, GParamSpec *, gpointer);
static gboolean zea_web_view_key(GtkWidget *, GdkEvent *, gpointer);
@@ -168,6 +169,8 @@ zea_new_client(const gchar *uri)
webkit_web_view_set_zoom_level(WEBKIT_WEB_VIEW(c->web_view), global_zoom);
g_signal_connect(G_OBJECT(c->web_view), "notify::title",
G_CALLBACK(zea_title_changed), c);
+ g_signal_connect(G_OBJECT(c->web_view), "notify::uri",
+ G_CALLBACK(zea_uri_changed), c);
g_signal_connect(G_OBJECT(c->web_view),
"new-window-policy-decision-requested",
G_CALLBACK(zea_new_client_request), NULL);
@@ -232,6 +235,19 @@ zea_title_changed(GObject *obj, GParamSpec *pspec, gpointer data)
gtk_window_set_title(GTK_WINDOW(c->win), (t == NULL ? "zea" : t));
}
+void
+zea_uri_changed(GObject *obj, GParamSpec *pspec, gpointer data)
+{
+ const gchar *t;
+ struct Client *c = (struct Client *)data;
+
+ (void)obj;
+ (void)pspec;
+
+ t = webkit_web_view_get_uri(WEBKIT_WEB_VIEW(c->web_view));
+ gtk_entry_set_text(GTK_ENTRY(c->location), (t == NULL ? "zea" : t));
+}
+
gboolean
zea_web_view_key(GtkWidget *widget, GdkEvent *event, gpointer data)
{