X-Git-Url: https://git.xinqibao.xyz/dwm.git/blobdiff_plain/cee56d38632bbac08e7f59d58c7c7ab1370be329..7d071ce2bd12916cf0784cc2d666b2e66931c174:/event.c?ds=sidebyside

diff --git a/event.c b/event.c
index b8036fc..6386659 100644
--- a/event.c
+++ b/event.c
@@ -2,6 +2,7 @@
  * See LICENSE file for license details.
  */
 #include "dwm.h"
+#include <stdio.h>
 #include <stdlib.h>
 #include <X11/keysym.h>
 #include <X11/Xatom.h>
@@ -11,8 +12,8 @@
 typedef struct {
 	unsigned long mod;
 	KeySym keysym;
-	void (*func)(Arg *arg);
-	Arg arg;
+	void (*func)(const char *arg);
+	const char *arg;
 } Key;
 
 KEYS
@@ -112,27 +113,29 @@ resizemouse(Client *c) {
 
 static void
 buttonpress(XEvent *e) {
-	int x;
-	Arg a;
+	static char buf[32];
+	unsigned int i, x;
 	Client *c;
 	XButtonPressedEvent *ev = &e->xbutton;
 
+	buf[0] = 0;
 	if(barwin == ev->window) {
 		x = 0;
-		for(a.i = 0; a.i < ntags; a.i++) {
-			x += textw(tags[a.i]);
+		for(i = 0; i < ntags; i++) {
+			x += textw(tags[i]);
 			if(ev->x < x) {
+				snprintf(buf, sizeof buf, "%d", i);
 				if(ev->button == Button1) {
 					if(ev->state & MODKEY)
-						tag(&a);
+						tag(buf);
 					else
-						view(&a);
+						view(buf);
 				}
 				else if(ev->button == Button3) {
 					if(ev->state & MODKEY)
-						toggletag(&a);
+						toggletag(buf);
 					else
-						toggleview(&a);
+						toggleview(buf);
 				}
 				return;
 			}
@@ -140,15 +143,7 @@ buttonpress(XEvent *e) {
 		if(ev->x < x + blw)
 			switch(ev->button) {
 			case Button1:
-				togglelayout(NULL);
-				break;
-			case Button4:
-				a.i = 1;
-				incnmaster(&a);
-				break;
-			case Button5:
-				a.i = -1;
-				incnmaster(&a);
+				setlayout(NULL);
 				break;
 			}
 	}
@@ -156,14 +151,14 @@ buttonpress(XEvent *e) {
 		focus(c);
 		if(CLEANMASK(ev->state) != MODKEY)
 			return;
-		if(ev->button == Button1 && (lt->arrange == swim || c->swimming)) {
+		if(ev->button == Button1 && (lt->arrange == floating || c->isfloating)) {
 			restack();
 			movemouse(c);
 		}
 		else if(ev->button == Button2)
 			zoom(NULL);
 		else if(ev->button == Button3
-		&& (lt->arrange == swim || c->swimming) && !c->isfixed)
+		&& (lt->arrange == floating || c->isfloating) && !c->isfixed)
 		{
 			restack();
 			resizemouse(c);
@@ -181,7 +176,7 @@ configurerequest(XEvent *e) {
 		c->ismax = False;
 		if(ev->value_mask & CWBorderWidth)
 			c->border = ev->border_width;
-		if(c->isfixed || c->swimming || (lt->arrange == swim)) {
+		if(c->isfixed || c->isfloating || (lt->arrange == floating)) {
 			if(ev->value_mask & CWX)
 				c->x = ev->x;
 			if(ev->value_mask & CWY)
@@ -260,7 +255,7 @@ keypress(XEvent *e) {
 		&& CLEANMASK(key[i].mod) == CLEANMASK(ev->state))
 		{
 			if(key[i].func)
-				key[i].func(&key[i].arg);
+				key[i].func(key[i].arg);
 		}
 }
 
@@ -309,7 +304,7 @@ propertynotify(XEvent *e) {
 			default: break;
 			case XA_WM_TRANSIENT_FOR:
 				XGetTransientForHint(dpy, c->win, &trans);
-				if(!c->swimming && (c->swimming = (getclient(trans) != NULL)))
+				if(!c->isfloating && (c->isfloating = (getclient(trans) != NULL)))
 					lt->arrange();
 				break;
 			case XA_WM_NORMAL_HINTS: