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>
This commit is contained in:
Greg Reagle 2015-01-27 13:26:26 -05:00 committed by Christoph Lohmann
parent b3a4392923
commit f7e358280c

10
surf.c
View File

@ -179,6 +179,7 @@ static void source(Client *c, const Arg *arg);
static void spawn(Client *c, const Arg *arg); static void spawn(Client *c, const Arg *arg);
static void stop(Client *c, const Arg *arg); static void stop(Client *c, const Arg *arg);
static void titlechange(WebKitWebView *view, GParamSpec *pspec, Client *c); 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 toggle(Client *c, const Arg *arg);
static void togglecookiepolicy(Client *c, const Arg *arg); static void togglecookiepolicy(Client *c, const Arg *arg);
static void togglegeolocation(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), g_signal_connect(G_OBJECT(c->win),
"destroy", "destroy",
G_CALLBACK(destroywin), c); G_CALLBACK(destroywin), c);
g_signal_connect(G_OBJECT(c->win),
"leave_notify_event",
G_CALLBACK(titlechangeleave), c);
if(!kioskmode) if(!kioskmode)
addaccelgroup(c); addaccelgroup(c);
@ -1298,6 +1302,12 @@ titlechange(WebKitWebView *view, GParamSpec *pspec, Client *c) {
} }
} }
static void
titlechangeleave(void *a, void *b, Client *c) {
c->linkhover = NULL;
updatetitle(c);
}
static void static void
toggle(Client *c, const Arg *arg) { toggle(Client *c, const Arg *arg) {
WebKitWebSettings *settings; WebKitWebSettings *settings;