summary refs log tree commit diff
path: root/client.c
diff options
context:
space:
mode:
authorokan <okan>2012-09-09 19:47:47 +0000
committerokan <okan>2012-09-09 19:47:47 +0000
commit86524e21dd53bad45f4586a7cc856062b67f8033 (patch)
treee9eabb61fe04d55d914b1a1decc955fff12d0991 /client.c
parent7071261bde1d100629765ca179a6e8ee662569a6 (diff)
downloadcwm-86524e21dd53bad45f4586a7cc856062b67f8033.tar.gz
cwm-86524e21dd53bad45f4586a7cc856062b67f8033.tar.xz
cwm-86524e21dd53bad45f4586a7cc856062b67f8033.zip
extend client_resize so that it can know when to reset max flags and
bwidth; this allows a client to be resized from a max state, which now
gets treated like a non-max'd client.  based on a diff that does part of
this in a different way from Alexander Polakov.
Diffstat (limited to 'client.c')
-rw-r--r--client.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/client.c b/client.c
index 15052eb..8cb119f 100644
--- a/client.c
+++ b/client.c
@@ -306,7 +306,7 @@ client_maximize(struct client_ctx *cc)
 	cc->flags |= CLIENT_MAXIMIZED;
 
 resize:
-	client_resize(cc);
+	client_resize(cc, 0);
 }
 
 void
@@ -355,7 +355,7 @@ client_vertmaximize(struct client_ctx *cc)
 	cc->flags |= CLIENT_VMAXIMIZED;
 
 resize:
-	client_resize(cc);
+	client_resize(cc, 0);
 }
 
 void
@@ -404,12 +404,17 @@ client_horizmaximize(struct client_ctx *cc)
 	cc->flags |= CLIENT_HMAXIMIZED;
 
 resize:
-	client_resize(cc);
+	client_resize(cc, 0);
 }
 
 void
-client_resize(struct client_ctx *cc)
+client_resize(struct client_ctx *cc, int reset)
 {
+	if (reset) {
+		cc->flags &= ~CLIENT_MAXIMIZED;
+		cc->bwidth = Conf.bwidth;
+	}
+
 	client_draw_border(cc);
 
 	XMoveResizeWindow(X_Dpy, cc->win, cc->geom.x,