summaryrefslogtreecommitdiff
path: root/zea.c
diff options
context:
space:
mode:
Diffstat (limited to 'zea.c')
-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)
{