about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--config.def.h2
-rw-r--r--dwm.12
-rw-r--r--dwm.c46
3 files changed, 12 insertions, 38 deletions
diff --git a/config.def.h b/config.def.h
index d76bd0b..25bf3e6 100644
--- a/config.def.h
+++ b/config.def.h
@@ -46,7 +46,7 @@ Key keys[] = {
 	{ MODKEY,			XK_k,		focusprev,	NULL },
 	{ MODKEY,			XK_h,		setmwfact,	"-0.05" },
 	{ MODKEY,			XK_l,		setmwfact,	"+0.05" },
-	{ MODKEY,			XK_m,		togglemax,	NULL },
+	{ MODKEY,			XK_m,		maximize,	NULL },
 	{ MODKEY,			XK_r,		reapply,	NULL },
 	{ MODKEY,			XK_Return,	zoom,		NULL },
 	{ MODKEY,			XK_Tab,		viewprevtag,	NULL },
diff --git a/dwm.1 b/dwm.1
index aff7bed..934c124 100644
--- a/dwm.1
+++ b/dwm.1
@@ -78,7 +78,7 @@ Focus previous window.
 Increases the master area width about 5% (tiled layout only).
 .TP
 .B Mod1\-m
-Toggles maximization of current window.
+Maximizes current window (floating layout/window only).
 .TP
 .B Mod1\-r
 Re-applies tagging rules to all windows.
diff --git a/dwm.c b/dwm.c
index 0af37d6..3699f99 100644
--- a/dwm.c
+++ b/dwm.c
@@ -61,12 +61,11 @@ typedef struct Client Client;
 struct Client {
 	char name[256];
 	int x, y, w, h;
-	int rx, ry, rw, rh; /* revert geometry */
 	int basew, baseh, incw, inch, maxw, maxh, minw, minh;
 	int minax, maxax, minay, maxay;
 	long flags;
 	unsigned int border, oldborder;
-	Bool isbanned, isfixed, ismax, isfloating, wasfloating;
+	Bool isbanned, isfixed, isfloating;
 	Bool *tags;
 	Client *next;
 	Client *prev;
@@ -157,6 +156,7 @@ void leavenotify(XEvent *e);
 void manage(Window w, XWindowAttributes *wa);
 void mappingnotify(XEvent *e);
 void maprequest(XEvent *e);
+void maximize(const char *arg);
 void movemouse(Client *c);
 Client *nexttiled(Client *c);
 void propertynotify(XEvent *e);
@@ -178,7 +178,6 @@ unsigned int textw(const char *text);
 void tile(void);
 void togglebar(const char *arg);
 void togglefloating(const char *arg);
-void togglemax(const char *arg);
 void toggletag(const char *arg);
 void toggleview(const char *arg);
 void unban(Client *c);
@@ -466,7 +465,6 @@ configurerequest(XEvent *e) {
 	XWindowChanges wc;
 
 	if((c = getclient(ev->window))) {
-		c->ismax = False;
 		if(ev->value_mask & CWBorderWidth)
 			c->border = ev->border_width;
 		if(c->isfixed || c->isfloating || (floating == layout->arrange)) {
@@ -563,7 +561,7 @@ drawbar(void) {
 		dc.x = x;
 		if(sel) {
 			drawtext(sel->name, dc.sel);
-			drawsquare(sel->ismax, sel->isfloating, dc.sel);
+			drawsquare(False, sel->isfloating, dc.sel);
 		}
 		else
 			drawtext(NULL, dc.norm);
@@ -1079,6 +1077,13 @@ maprequest(XEvent *e) {
 }
 
 void
+maximize(const char *arg) {
+	if(!sel || (!sel->isfloating && layout->arrange != floating))
+		return;
+	resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True);
+}
+
+void
 movemouse(Client *c) {
 	int x1, y1, ocx, ocy, di, nx, ny;
 	unsigned int dui;
@@ -1090,7 +1095,6 @@ movemouse(Client *c) {
 	if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
 			None, cursor[CurMove], CurrentTime) != GrabSuccess)
 		return;
-	c->ismax = False;
 	XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
 	for(;;) {
 		XMaskEvent(dpy, MOUSEMASK | ExposureMask | SubstructureRedirectMask, &ev);
@@ -1248,7 +1252,6 @@ resizemouse(Client *c) {
 	if(XGrabPointer(dpy, root, False, MOUSEMASK, GrabModeAsync, GrabModeAsync,
 			None, cursor[CurResize], CurrentTime) != GrabSuccess)
 		return;
-	c->ismax = False;
 	XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->border - 1, c->h + c->border - 1);
 	for(;;) {
 		XMaskEvent(dpy, MOUSEMASK | ExposureMask | SubstructureRedirectMask , &ev);
@@ -1609,7 +1612,6 @@ tile(void) {
 	ny = way;
 	nw = 0; /* gcc stupidity requires this */
 	for(i = 0, c = mc = nexttiled(clients); c; c = nexttiled(c->next), i++) {
-		c->ismax = False;
 		if(i == 0) { /* master */
 			nw = mw - 2 * c->border;
 			nh = wah - 2 * c->border;
@@ -1655,34 +1657,6 @@ togglefloating(const char *arg) {
 }
 
 void
-togglemax(const char *arg) {
-	XEvent ev;
-
-	if(!sel || sel->isfixed)
-		return;
-	if((sel->ismax = !sel->ismax)) {
-		if((layout->arrange == floating) || sel->isfloating)
-			sel->wasfloating = True;
-		else {
-			togglefloating(NULL);
-			sel->wasfloating = False;
-		}
-		sel->rx = sel->x;
-		sel->ry = sel->y;
-		sel->rw = sel->w;
-		sel->rh = sel->h;
-		resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True);
-	}
-	else {
-		resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
-		if(!sel->wasfloating)
-			togglefloating(NULL);
-	}
-	drawbar();
-	while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
-}
-
-void
 toggletag(const char *arg) {
 	unsigned int i, j;
 
href='#n347'>347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405