Selectively hide and show clients based on state; merge client_unhide() and
client_show().
This commit is contained in:
parent
7d83c3f6e3
commit
b08a193eaf
@ -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,25 +527,16 @@ 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);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user