From e7c2e260624529c832dabe37f0503b8ed3a905c1 Mon Sep 17 00:00:00 2001 From: oga Date: Tue, 17 Jun 2008 20:21:17 +0000 Subject: The mousebinding code missing a break once it had found the correct binding, this expose another issue that's still being debugged. Issue pointed out by Dan Harnett, thanks! While i'm here KNF and rework the logic to not be ass-backwards. ok okan. --- xevents.c | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/xevents.c b/xevents.c index 60fd30c..abdc2b8 100644 --- a/xevents.c +++ b/xevents.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $Id: xevents.c,v 1.20 2008/06/14 22:04:11 okan Exp $ + * $Id: xevents.c,v 1.21 2008/06/17 20:21:17 oga Exp $ */ /* @@ -220,32 +220,33 @@ xev_handle_leavenotify(struct xevent *xev, XEvent *ee) void xev_handle_buttonpress(struct xevent *xev, XEvent *ee) { - XButtonEvent *e = &ee->xbutton; - struct client_ctx *cc; - struct screen_ctx *sc = screen_fromroot(e->root); - char *wname; - struct mousebinding *mb; + XButtonEvent *e = &ee->xbutton; + struct client_ctx *cc; + struct screen_ctx *sc = screen_fromroot(e->root); + struct mousebinding *mb; + char *wname; cc = client_find(e->window); - if (sc->rootwin == 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) - continue; - (*mb->callback)(cc, e); + if (e->button == mb->button && e->state == mb->modmask + && mb->context == MOUSEBIND_CTX_ROOT) { + (*mb->callback)(cc, e); + break; + } } + } if (cc == NULL || e->state == 0) goto out; TAILQ_FOREACH(mb, &Conf.mousebindingq, entry) { - if(e->button!=mb->button || e->state!=mb->modmask || - mb->context!=MOUSEBIND_CTX_WIN) - continue; - - (*mb->callback)(cc, NULL); - break; + if (e->button == mb->button && e->state == mb->modmask && + mb->context == MOUSEBIND_CTX_ROOT) { + (*mb->callback)(cc, NULL); + break; + } } out: xev_register(xev); -- cgit v1.2.3-2-gb3c3