commit f7e358280cb3bda1f8c46ca021fe94b59a984f5d
parent b3a4392923b26e81c4faa35907a4a2d071e2275f
Author: Greg Reagle <greg.reagle@umbc.edu>
Date:   Tue, 27 Jan 2015 13:26:26 -0500
surf: see hover URL without changing title
On Tue, Jan 27, 2015, at 11:52 AM, Christoph Lohmann wrote:
> Then hook to the window leaving event in GTK or X11 and set the title to
> your needs. I will welcome a patch.
Patch is attached.  I am a total novice in GTK programming, so I don't
know what type the callback function is supposed to be (hence the void
pointers) or whether I registered it properly.  But it does work well
for me.
--
http://www.fastmail.com - Access your email from home and the web
From a33f06da092bf920b6a286ea7688b32944d79a50 Mon Sep 17 00:00:00 2001
From: Greg Reagle <greg.reagle@umbc.edu>
Date: Tue, 27 Jan 2015 13:22:15 -0500
Subject: [PATCH] ensure that window title is web page title (not hover link)
 when leaving window
Signed-off-by: Christoph Lohmann <20h@r-36.net>
Diffstat:
1 file changed, 10 insertions(+), 0 deletions(-)
diff --git a/surf.c b/surf.c
@@ -179,6 +179,7 @@ static void source(Client *c, const Arg *arg);
 static void spawn(Client *c, const Arg *arg);
 static void stop(Client *c, const Arg *arg);
 static void titlechange(WebKitWebView *view, GParamSpec *pspec, Client *c);
+static void titlechangeleave(void *a, void *b, Client *c);
 static void toggle(Client *c, const Arg *arg);
 static void togglecookiepolicy(Client *c, const Arg *arg);
 static void togglegeolocation(Client *c, const Arg *arg);
@@ -805,6 +806,9 @@ newclient(void) {
 	g_signal_connect(G_OBJECT(c->win),
 			"destroy",
 			G_CALLBACK(destroywin), c);
+	g_signal_connect(G_OBJECT(c->win),
+			"leave_notify_event",
+			G_CALLBACK(titlechangeleave), c);
 
 	if(!kioskmode)
 		addaccelgroup(c);
@@ -1299,6 +1303,12 @@ titlechange(WebKitWebView *view, GParamSpec *pspec, Client *c) {
 }
 
 static void
+titlechangeleave(void *a, void *b, Client *c) {
+	c->linkhover = NULL;
+	updatetitle(c);
+}
+
+static void
 toggle(Client *c, const Arg *arg) {
 	WebKitWebSettings *settings;
 	char *name = (char *)arg->v;