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:
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 {