summary refs log tree commit diff
diff options
context:
space:
mode:
authorokan <okan>2015-08-23 17:31:20 +0000
committerokan <okan>2015-08-23 17:31:20 +0000
commitb224945446083ec061cea8ae41ee98190f7a4185 (patch)
tree9e36ec38d5f24cb0a0fb97471f85290445adf3fe
parentae9306748b36c5264ac95a9b50ffbbde94911b48 (diff)
downloadcwm-b224945446083ec061cea8ae41ee98190f7a4185.tar.gz
cwm-b224945446083ec061cea8ae41ee98190f7a4185.tar.xz
cwm-b224945446083ec061cea8ae41ee98190f7a4185.zip
Move CLIENT_STICKY logic from client hide/unhide to group hide/unhide;
rationale being that clients should be able to hide/unhide independently
of group switching.
-rw-r--r--client.c6
-rw-r--r--group.c12
2 files changed, 8 insertions, 10 deletions
diff --git a/client.c b/client.c
index 7faf0ef..6b3ab11 100644
--- a/client.c
+++ b/client.c
@@ -493,9 +493,6 @@ client_ptrsave(struct client_ctx *cc)
 void
 client_hide(struct client_ctx *cc)
 {
-	if (cc->flags & CLIENT_STICKY)
-		return;
-
 	XUnmapWindow(X_Dpy, cc->win);
 
 	cc->flags &= ~CLIENT_ACTIVE;
@@ -509,9 +506,6 @@ client_hide(struct client_ctx *cc)
 void
 client_unhide(struct client_ctx *cc)
 {
-	if (cc->flags & CLIENT_STICKY)
-		return;
-
 	XMapRaised(X_Dpy, cc->win);
 
 	cc->flags &= ~CLIENT_HIDDEN;
diff --git a/group.c b/group.c
index bbcd6cf..c2d4b36 100644
--- a/group.c
+++ b/group.c
@@ -64,8 +64,10 @@ group_hide(struct group_ctx *gc)
 
 	screen_updatestackingorder(gc->sc);
 
-	TAILQ_FOREACH(cc, &gc->clientq, group_entry)
-		client_hide(cc);
+	TAILQ_FOREACH(cc, &gc->clientq, group_entry) {
+		if (!(cc->flags & CLIENT_STICKY))
+			client_hide(cc);
+	}
 }
 
 void
@@ -73,8 +75,10 @@ group_show(struct group_ctx *gc)
 {
 	struct client_ctx	*cc;
 
-	TAILQ_FOREACH(cc, &gc->clientq, group_entry)
-		client_unhide(cc);
+	TAILQ_FOREACH(cc, &gc->clientq, group_entry) {
+		if (!(cc->flags & CLIENT_STICKY))
+			client_unhide(cc);
+	}
 
 	group_restack(gc);
 	group_setactive(gc);