diff options
author | okan <okan> | 2013-10-25 19:46:16 +0000 |
---|---|---|
committer | okan <okan> | 2013-10-25 19:46:16 +0000 |
commit | 0c99788f66ca591381601768c53ddf4ba203372a (patch) | |
tree | 1fce649dc4d803a2fc242bc68f77a9fcd09bd535 /client.c | |
parent | 0d6e8a9146309f5dab93b4d15abfa91aac31ec5f (diff) | |
parent | 6e17b41f566865629d3dd35a6a60e081e6e2b089 (diff) | |
download | cwm-0c99788f66ca591381601768c53ddf4ba203372a.tar.gz cwm-0c99788f66ca591381601768c53ddf4ba203372a.tar.xz cwm-0c99788f66ca591381601768c53ddf4ba203372a.zip |
cvsimport
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/client.c b/client.c index f293147..e22f4c9 100644 --- a/client.c +++ b/client.c @@ -145,17 +145,19 @@ client_init(Window win, struct screen_ctx *sc, int mapped) } void -client_delete(struct client_ctx *cc) +client_delete(struct client_ctx *cc, int destroy) { struct screen_ctx *sc = cc->sc; struct winname *wn; - XGrabServer(X_Dpy); - cc->state = WithdrawnState; - xu_set_wm_state(cc->win, cc->state); - XRemoveFromSaveSet(X_Dpy, cc->win); - XSync(X_Dpy, False); - XUngrabServer(X_Dpy); + if (destroy) { + XGrabServer(X_Dpy); + cc->state = WithdrawnState; + xu_set_wm_state(cc->win, cc->state); + XRemoveFromSaveSet(X_Dpy, cc->win); + XSync(X_Dpy, False); + XUngrabServer(X_Dpy); + } TAILQ_REMOVE(&sc->mruq, cc, mru_entry); TAILQ_REMOVE(&Clientq, cc, entry); @@ -186,15 +188,10 @@ client_delete(struct client_ctx *cc) void client_leave(struct client_ctx *cc) { - struct screen_ctx *sc; - if (cc == NULL) cc = client_current(); if (cc == NULL) return; - - sc = cc->sc; - xu_btn_ungrab(sc->rootwin, AnyModifier, Button1); } void @@ -396,8 +393,6 @@ client_resize(struct client_ctx *cc, int reset) xu_ewmh_set_net_wm_state(cc); } - client_draw_border(cc); - XMoveResizeWindow(X_Dpy, cc->win, cc->geom.x, cc->geom.y, cc->geom.w, cc->geom.h); client_config(cc); @@ -493,7 +488,6 @@ client_unhide(struct client_ctx *cc) cc->flags &= ~CLIENT_HIDDEN; cc->state = NormalState; xu_set_wm_state(cc->win, cc->state); - client_draw_border(cc); } void |