From 19ba704ee3b16bcf4a29c223c5796a7f63fa6b6d Mon Sep 17 00:00:00 2001 From: oga Date: Tue, 17 Jun 2008 20:55:48 +0000 Subject: Just rework the mouse binding calculation on event to look like the kbfunc one. Makes the code a lot easier to read. Fixes a bug i introduced in the last commit here. ok okan. --- xevents.c | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) (limited to 'xevents.c') diff --git a/xevents.c b/xevents.c index b529580..dc3ac87 100644 --- a/xevents.c +++ b/xevents.c @@ -228,26 +228,24 @@ xev_handle_buttonpress(struct xevent *xev, XEvent *ee) cc = client_find(e->window); - if (e->window == sc->rootwin) { - TAILQ_FOREACH(mb, &Conf.mousebindingq, entry) { - if (e->button == mb->button && e->state == mb->modmask - && mb->context == MOUSEBIND_CTX_ROOT) { - (*mb->callback)(cc, e); - break; - } - } + TAILQ_FOREACH(mb, &Conf.mousebindingq, entry) { + if (e->button == mb->button && e->state == mb->modmask) + break; } - if (cc == NULL || e->state == 0) + if (mb == NULL) goto out; - TAILQ_FOREACH(mb, &Conf.mousebindingq, entry) { - if (e->button == mb->button && e->state == mb->modmask && - mb->context == MOUSEBIND_CTX_ROOT) { - (*mb->callback)(cc, NULL); - break; - } + if (mb->context == MOUSEBIND_CTX_ROOT) { + if (e->window != sc->rootwin) + goto out; + } else if (mb->context == MOUSEBIND_CTX_WIN) { + cc = client_find(e->window); + if (cc == NULL) + goto out; } + + (*mb->callback)(cc, e); out: xev_register(xev); } -- cgit 1.4.1