fakefullscreenclient: setfullscreen logic overhaul

This commit is contained in:
bakkeby
2020-09-13 13:35:15 +02:00
parent 819d06c5c9
commit fada5790a2
3 changed files with 86 additions and 57 deletions

View File

@@ -5,31 +5,14 @@ togglefakefullscreen(const Arg *arg)
if (!c)
return;
if (c->fakefullscreen) {
if (c->isfullscreen) {
if (c->isfloating && c->fakefullscreen == 1) {
c->oldstate = c->isfloating;
c->oldx = c->x;
c->oldy = c->y;
c->oldw = c->w;
c->oldh = c->h;
}
c->fakefullscreen = 0;
}
else
c->isfullscreen = 0;
if (c->fakefullscreen != 1 && c->isfullscreen) { // exit fullscreen --> fake fullscreen
c->fakefullscreen = 2;
setfullscreen(c, 0);
} else if (c->fakefullscreen == 1) {
setfullscreen(c, 0);
c->fakefullscreen = 0;
} else {
c->fakefullscreen = 1;
if (c->isfullscreen) {
c->isfloating = c->oldstate;
c->bw = c->oldbw;
c->x = c->oldx;
c->y = c->oldy;
c->w = c->oldw;
c->h = c->oldh;
resizeclient(c, c->x, c->y, c->w, c->h);
}
c->isfullscreen = 0;
setfullscreen(c, 1);
}
setfullscreen(c, !c->isfullscreen);
}