From aa1bda81646e9d6188fd584009be0eee619f6966 Mon Sep 17 00:00:00 2001
From: "Anselm R. Garbe" <arg@10kloc.org>
Date: Tue, 29 Aug 2006 17:31:55 +0200
Subject: [PATCH] configurenotify remembers max geom now, and restores this if
 necessary, however it accepts to touch the max size on configurerequest, this
 shouldn't break fillscreen apps (tested with mplayer)

---
 event.c | 12 +++++++++++-
 tag.c   |  6 +++---
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/event.c b/event.c
index c7a0b15..0f74478 100644
--- a/event.c
+++ b/event.c
@@ -150,6 +150,7 @@ buttonpress(XEvent *e)
 static void
 configurerequest(XEvent *e)
 {
+	int ox, oy, ow, oh;
 	unsigned long newmask;
 	Client *c;
 	XConfigureRequestEvent *ev = &e->xconfigurerequest;
@@ -157,6 +158,10 @@ configurerequest(XEvent *e)
 	XWindowChanges wc;
 
 	if((c = getclient(ev->window))) {
+		ox = c->x;
+		oy = c->y;
+		ow = c->w;
+		oh = c->h;
 		gravitate(c, True);
 		if(ev->value_mask & CWX)
 			c->x = ev->x;
@@ -191,8 +196,13 @@ configurerequest(XEvent *e)
 			XSendEvent(dpy, c->win, True, NoEventMask, &synev);
 		}
 		XSync(dpy, False);
-		if(c->isfloat)
+		if(c->isfloat || c->ismax) {
 			resize(c, False, TopLeft);
+			c->x = ox;
+			c->y = oy;
+			c->w = ow;
+			c->h = oh;
+		}
 		else
 			arrange(NULL);
 	}
diff --git a/tag.c b/tag.c
index ddffafa..b7c06de 100644
--- a/tag.c
+++ b/tag.c
@@ -31,7 +31,7 @@ static RReg *rreg = NULL;
 static unsigned int len = 0;
 
 static void
-applytag()
+commit()
 {
 	/* asserts sel != NULL */
 	settitle(sel);
@@ -132,7 +132,7 @@ tag(Arg *arg)
 	for(i = 0; i < ntags; i++)
 		sel->tags[i] = False;
 	sel->tags[arg->i] = True;
-	applytag();
+	commit();
 }
 
 void
@@ -147,5 +147,5 @@ toggletag(Arg *arg)
 	for(i = 0; i < ntags && !sel->tags[i]; i++);
 	if(i == ntags)
 		sel->tags[arg->i] = True;
-	applytag();
+	commit();
 }