JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
simplified buttonpress
[dwm.git] / event.c
diff --git a/event.c b/event.c
index e97abad..e5ea712 100644 (file)
--- a/event.c
+++ b/event.c
@@ -109,16 +109,17 @@ buttonpress(XEvent *e)
                for(a.i = 0; a.i < ntags; a.i++) {
                        x += textw(tags[a.i]);
                        if(ev->x < x) {
-                               switch(ev->button) {
-                               case Button1:
-                                       view(&a);
-                                       break;
-                               case Button2:
-                                       toggletag(&a);
-                                       break;
-                               case Button3:
-                                       toggleview(&a);
-                                       break;
+                               if(ev->button == Button1) {
+                                       if(ev->state & MODKEY)
+                                               tag(&a);
+                                       else
+                                               view(&a);
+                               }
+                               else if(ev->button == Button3) {
+                                       if(ev->state & MODKEY)
+                                               toggletag(&a);
+                                       else
+                                               toggleview(&a);
                                }
                                return;
                        }
@@ -130,26 +131,17 @@ buttonpress(XEvent *e)
        }
        else if((c = getclient(ev->window))) {
                focus(c);
-               if(CLEANMASK(ev->state) != MODKEY)
+               if(c->ismax || CLEANMASK(ev->state) != MODKEY)
                        return;
-               switch(ev->button) {
-               default:
-                       break;
-               case Button1:
-                       if(!c->ismax && (arrange == dofloat || c->isfloat)) {
-                               restack(c);
-                               movemouse(c);
-                       }
-                       break;
-               case Button2:
+               if((ev->button == Button1) && ((arrange == dofloat) || c->isfloat)) {
+                       restack(c);
+                       movemouse(c);
+               }
+               else if(ev->button == Button2)
                        zoom(NULL);
-                       break;
-               case Button3:
-                       if(!c->ismax && (arrange == dofloat || c->isfloat)) {
-                               restack(c);
-                               resizemouse(c);
-                       }
-                       break;
+               else if(ev->button == Button3 && ((arrange == dofloat) || c->isfloat)) {
+                       restack(c);
+                       resizemouse(c);
                }
        }
 }