diff options
-rw-r--r-- | calmwm.h | 3 | ||||
-rw-r--r-- | client.c | 19 | ||||
-rw-r--r-- | group.c | 10 |
3 files changed, 12 insertions, 20 deletions
@@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: calmwm.h,v 1.364 2019/02/25 16:40:49 okan Exp $ + * $OpenBSD: calmwm.h,v 1.365 2019/02/28 13:11:53 okan Exp $ */ #ifndef _CALMWM_H_ @@ -435,7 +435,6 @@ void client_toggle_skip_taskbar(struct client_ctx *); void client_toggle_sticky(struct client_ctx *); void client_toggle_vmaximize(struct client_ctx *); void client_transient(struct client_ctx *); -void client_unhide(struct client_ctx *); void client_urgency(struct client_ctx *); void client_vtile(struct client_ctx *); void client_wm_hints(struct client_ctx *); @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: client.c,v 1.251 2019/02/23 19:17:17 okan Exp $ + * $OpenBSD: client.c,v 1.252 2019/02/28 13:11:53 okan Exp $ */ #include <sys/types.h> @@ -128,7 +128,7 @@ client_init(Window win, struct screen_ctx *sc, int active) if (client_get_wm_state(cc) == IconicState) client_hide(cc); else - client_unhide(cc); + client_show(cc); if (mapped) { if (cc->gc) { @@ -527,10 +527,10 @@ client_hide(struct client_ctx *cc) { XUnmapWindow(X_Dpy, cc->win); - if (cc->flags & CLIENT_ACTIVE) + if (cc->flags & CLIENT_ACTIVE) { + cc->flags &= ~CLIENT_ACTIVE; xu_ewmh_net_active_window(cc->sc, None); - - cc->flags &= ~CLIENT_ACTIVE; + } cc->flags |= CLIENT_HIDDEN; client_set_wm_state(cc, IconicState); } @@ -538,15 +538,6 @@ client_hide(struct client_ctx *cc) void client_show(struct client_ctx *cc) { - if (cc->flags & CLIENT_HIDDEN) - client_unhide(cc); - else - client_raise(cc); -} - -void -client_unhide(struct client_ctx *cc) -{ XMapRaised(X_Dpy, cc->win); cc->flags &= ~CLIENT_HIDDEN; @@ -16,7 +16,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: group.c,v 1.129 2019/02/25 16:40:49 okan Exp $ + * $OpenBSD: group.c,v 1.130 2019/02/28 13:11:53 okan Exp $ */ #include <sys/types.h> @@ -67,7 +67,8 @@ group_hide(struct group_ctx *gc) screen_updatestackingorder(gc->sc); TAILQ_FOREACH(cc, &gc->clientq, group_entry) { - if (!(cc->flags & CLIENT_STICKY)) + if (!(cc->flags & CLIENT_STICKY) && + !(cc->flags & CLIENT_HIDDEN)) client_hide(cc); } } @@ -78,8 +79,9 @@ group_show(struct group_ctx *gc) struct client_ctx *cc; TAILQ_FOREACH(cc, &gc->clientq, group_entry) { - if (!(cc->flags & CLIENT_STICKY)) - client_unhide(cc); + if (!(cc->flags & CLIENT_STICKY) && + (cc->flags & CLIENT_HIDDEN)) + client_show(cc); } group_restack(gc); |