forked from mirror/dwm
applied Peter Hartlich's togglemax patch to allow toggling tiled clients to maximum
This commit is contained in:
parent
fe2775a15b
commit
08c2d92480
2 changed files with 13 additions and 4 deletions
2
dwm.1
2
dwm.1
|
@ -75,7 +75,7 @@ Focus previous window.
|
||||||
Increases the master area width about 5% (tiled layout only).
|
Increases the master area width about 5% (tiled layout only).
|
||||||
.TP
|
.TP
|
||||||
.B Mod1\-m
|
.B Mod1\-m
|
||||||
Toggles maximization of current window (floating layout only).
|
Toggles maximization of current window.
|
||||||
.TP
|
.TP
|
||||||
.B Mod1\-Shift\-[1..n]
|
.B Mod1\-Shift\-[1..n]
|
||||||
Apply
|
Apply
|
||||||
|
|
15
dwm.c
15
dwm.c
|
@ -64,7 +64,7 @@ struct Client {
|
||||||
int minax, maxax, minay, maxay;
|
int minax, maxax, minay, maxay;
|
||||||
long flags;
|
long flags;
|
||||||
unsigned int border, oldborder;
|
unsigned int border, oldborder;
|
||||||
Bool isbanned, isfixed, ismax, isfloating;
|
Bool isbanned, isfixed, ismax, isfloating, wasfloating;
|
||||||
Bool *tags;
|
Bool *tags;
|
||||||
Client *next;
|
Client *next;
|
||||||
Client *prev;
|
Client *prev;
|
||||||
|
@ -1627,17 +1627,26 @@ void
|
||||||
togglemax(const char *arg) {
|
togglemax(const char *arg) {
|
||||||
XEvent ev;
|
XEvent ev;
|
||||||
|
|
||||||
if(!sel || (!isarrange(floating) && !sel->isfloating) || sel->isfixed)
|
if(!sel || sel->isfixed)
|
||||||
return;
|
return;
|
||||||
if((sel->ismax = !sel->ismax)) {
|
if((sel->ismax = !sel->ismax)) {
|
||||||
|
if(isarrange(floating) || sel->isfloating)
|
||||||
|
sel->wasfloating = True;
|
||||||
|
else {
|
||||||
|
togglefloating(NULL);
|
||||||
|
sel->wasfloating = False;
|
||||||
|
}
|
||||||
sel->rx = sel->x;
|
sel->rx = sel->x;
|
||||||
sel->ry = sel->y;
|
sel->ry = sel->y;
|
||||||
sel->rw = sel->w;
|
sel->rw = sel->w;
|
||||||
sel->rh = sel->h;
|
sel->rh = sel->h;
|
||||||
resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True);
|
resize(sel, wax, way, waw - 2 * sel->border, wah - 2 * sel->border, True);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
|
resize(sel, sel->rx, sel->ry, sel->rw, sel->rh, True);
|
||||||
|
if (!sel->wasfloating)
|
||||||
|
togglefloating(NULL);
|
||||||
|
}
|
||||||
drawbar();
|
drawbar();
|
||||||
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
|
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue