mirror of
https://github.com/leahneukirchen/cwm.git
synced 2023-08-10 21:13:12 +03:00
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.
This commit is contained in:
parent
867652c484
commit
9657664c7b
33
xevents.c
33
xevents.c
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user