wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 48ee811677bb54ff17771d6438644108fcfb5b6c
parent 308311820196edac17f2dfd7b5cd30ad9745165d
Author: Kris Maglione <kris@suckless.org>
Date:   Sat, 23 Jan 2010 20:16:10 -0500

Try harder to find the right screen for new fullscreen windows. Closes issue #164.

Diffstat:
cmd/wmii/client.c | 24+++++++++++++++++-------
cmd/wmii/dat.h | 12++++++------
2 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/cmd/wmii/client.c b/cmd/wmii/client.c @@ -609,9 +609,10 @@ client_kill(Client *c, bool nice) { void fullscreen(Client *c, int fullscreen, long screen) { + Client *leader; Frame *f; bool wassel; - + if(fullscreen == Toggle) fullscreen = (c->fullscreen >= 0) ^ On; if(fullscreen == (c->fullscreen >= 0)) @@ -638,7 +639,16 @@ fullscreen(Client *c, int fullscreen, long screen) { } } else { - c->fullscreen = screen >= 0 ? screen : ownerscreen(c->r); + c->fullscreen = 0; + if(screen >= 0) + c->fullscreen = screen; + else if(c->sel) + c->fullscreen = ownerscreen(c->r); + else if(c->group && (leader = group_leader(c->group)) && leader->sel) + c->fullscreen = ownerscreen(leader->r); + else if(selclient()) + c->fullscreen = ownerscreen(selclient()->r); + for(f=c->frame; f; f=f->cnext) f->oldarea = -1; if((f = c->sel)) @@ -758,11 +768,11 @@ updatemwm(Client *c) { c->borderless = 0; c->titleless = 0; - if(n >= 3 && (ret[Flags]&FlagDecor)) { - if(ret[Decor]&All) + if(n >= 3 && (ret[Flags] & FlagDecor)) { + if(ret[Decor] & All) ret[Decor] ^= ~0; - c->borderless = !(ret[Decor]&Border); - c->titleless = !(ret[Decor]&Title); + c->borderless = !(ret[Decor] & Border); + c->titleless = !(ret[Decor] & Title); } free(ret); @@ -826,7 +836,7 @@ client_prop(Client *c, Atom a) { update_class(c); break; case XA_WM_NAME: -wmname: + wmname: client_updatename(c); break; } diff --git a/cmd/wmii/dat.h b/cmd/wmii/dat.h @@ -183,12 +183,12 @@ struct Client { uint border; int fullscreen; int unmapped; - char floating; - char fixedsize; - char urgent; - char borderless; - char titleless; - char noinput; + bool floating; + bool fixedsize; + bool urgent; + bool borderless; + bool titleless; + bool noinput; }; struct Divide {