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.
This commit is contained in:
parent
34c24fdb68
commit
812ce180c5
@ -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.21 2008/06/17 20:21:17 oga Exp $
|
||||
* $Id: xevents.c,v 1.22 2008/06/17 20:55:48 oga Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user