diff options
author | Quentin Rameau <quinq@fifth.space> | 2015-11-19 23:42:19 +0100 |
---|---|---|
committer | Quentin Rameau <quinq@fifth.space> | 2015-11-20 00:34:22 +0100 |
commit | b4e78555d020bd33981c50805f5480da22c8136d (patch) | |
tree | d242d453ab6b7efb7e1d60a4976864eb748f442e | |
parent | d9cecc89329dee3eb48bb6cc38d2bc38796c2e8b (diff) | |
download | surf-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.
-rw-r--r-- | surf.c | 22 |
1 files changed, 15 insertions, 7 deletions
@@ -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 |