about summary refs log tree commit diff
path: root/surf.c
diff options
context:
space:
mode:
authorQuentin Rameau <quinq@fifth.space>2015-11-19 23:42:19 +0100
committerQuentin Rameau <quinq@fifth.space>2015-11-20 00:34:22 +0100
commitb4e78555d020bd33981c50805f5480da22c8136d (patch)
treed242d453ab6b7efb7e1d60a4976864eb748f442e /surf.c
parentAdapt JavaScript functions (diff)
downloadsurf-b4e78555d020bd33981c50805f5480da22c8136d.tar.gz
surf-b4e78555d020bd33981c50805f5480da22c8136d.tar.bz2
surf-b4e78555d020bd33981c50805f5480da22c8136d.zip
Replace titlechangeleave() with catch-all winevent()
All GtkWidget events have the same function prototype with the generic
GdkEvent as parameter. This will let us handle everything in the switch.
Diffstat (limited to 'surf.c')
-rw-r--r--surf.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/surf.c b/surf.c
index e8b2c3d..6c83405 100644
--- a/surf.c
+++ b/surf.c
@@ -167,6 +167,7 @@ static void pasteuri(GtkClipboard *clipboard, const char *text, gpointer d);
 static void print(Client *c, const Arg *arg);
 static GdkFilterReturn processx(GdkXEvent *xevent, GdkEvent *event,
                                 gpointer d);
+static gboolean winevent(GtkWidget *w, GdkEvent *e, Client *c);
 static void progresschanged(WebKitWebView *v, GParamSpec *ps, Client *c);
 static void linkopen(Client *c, const Arg *arg);
 static void linkopenembed(Client *c, const Arg *arg);
@@ -180,7 +181,6 @@ static void sigchld(int unused);
 static void spawn(Client *c, const Arg *arg);
 static void stop(Client *c, const Arg *arg);
 static void titlechanged(WebKitWebView *view, GParamSpec *ps, 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);
@@ -1125,8 +1125,8 @@ createwindow(Client *c)
 
 	g_signal_connect(G_OBJECT(w), "destroy",
 	    G_CALLBACK(destroywin), c);
-	g_signal_connect(G_OBJECT(w), "leave_notify_event",
-	    G_CALLBACK(titlechangeleave), c);
+	g_signal_connect(G_OBJECT(w), "leave-notify-event",
+	    G_CALLBACK(winevent), c);
 
 	return w;
 }
@@ -1331,11 +1331,19 @@ titlechanged(WebKitWebView *view, GParamSpec *ps, Client *c)
 	updatetitle(c);
 }
 
-void
-titlechangeleave(void *a, void *b, Client *c)
+gboolean
+winevent(GtkWidget *w, GdkEvent *e, Client *c)
 {
-	c->linkhover = NULL;
-	updatetitle(c);
+	switch (e->type) {
+	case GDK_LEAVE_NOTIFY:
+		c->targeturi = NULL;
+		updatetitle(c);
+		break;
+	default:
+		return FALSE;
+	}
+
+	return TRUE;
 }
 
 void