summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOwain Ainsworth <oga@cvs.openbsd.org>2008-06-17 20:55:49 +0000
committerOwain Ainsworth <oga@cvs.openbsd.org>2008-06-17 20:55:49 +0000
commitd84a87fe78ad7743e069c9b04cf542b35ea43d4c (patch)
tree45f208b6d08db99409aed0c8ead6f23b4c8a630b
parent717d05ed829b4c3fcdf8c9dc7d078b1da694f40a (diff)
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.
-rw-r--r--app/cwm/xevents.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/app/cwm/xevents.c b/app/cwm/xevents.c
index abdc2b8ea..299993d4e 100644
--- a/app/cwm/xevents.c
+++ b/app/cwm/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.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);
}