| dwm-savefloats-20160723-56a31dc.diff - sites - public wiki contents of suckless… | |
| git clone git://git.suckless.org/sites | |
| Log | |
| Files | |
| Refs | |
| --- | |
| dwm-savefloats-20160723-56a31dc.diff (1452B) | |
| --- | |
| 1 diff --git a/dwm.c b/dwm.c | |
| 2 index cfea881..87a23c4 100644 | |
| 3 --- a/dwm.c | |
| 4 +++ b/dwm.c | |
| 5 @@ -107,6 +107,7 @@ struct Client { | |
| 6 char name[256]; | |
| 7 float mina, maxa; | |
| 8 int x, y, w, h; | |
| 9 + int sfx, sfy, sfw, sfh; /* stored float geometry, used on mode … | |
| 10 int oldx, oldy, oldw, oldh; | |
| 11 int basew, baseh, incw, inch, maxw, maxh, minw, minh; | |
| 12 int bw, oldbw; | |
| 13 @@ -1205,10 +1206,10 @@ manage(Window w, XWindowAttributes *wa) | |
| 14 c = ecalloc(1, sizeof(Client)); | |
| 15 c->win = w; | |
| 16 /* geometry */ | |
| 17 - c->x = c->oldx = wa->x; | |
| 18 - c->y = c->oldy = wa->y; | |
| 19 - c->w = c->oldw = wa->width; | |
| 20 - c->h = c->oldh = wa->height; | |
| 21 + c->sfx = c->x = c->oldx = wa->x; | |
| 22 + c->sfy = c->y = c->oldy = wa->y; | |
| 23 + c->sfw = c->w = c->oldw = wa->width; | |
| 24 + c->sfh = c->h = c->oldh = wa->height; | |
| 25 c->oldbw = wa->border_width; | |
| 26 | |
| 27 updatetitle(c); | |
| 28 @@ -1976,8 +1977,16 @@ togglefloating(const Arg *arg) | |
| 29 return; | |
| 30 selmon->sel->isfloating = !selmon->sel->isfloating || selmon->s… | |
| 31 if (selmon->sel->isfloating) | |
| 32 - resize(selmon->sel, selmon->sel->x, selmon->sel->y, | |
| 33 - selmon->sel->w, selmon->sel->h, 0); | |
| 34 + /* restore last know float dimentions */ | |
| 35 + resize(selmon->sel, selmon->sel->sfx, selmon->sel->sfy, | |
| 36 + selmon->sel->sfw, selmon->sel->sfh, 0); | |
| 37 + else { | |
| 38 + /* save last known float dimentions */ | |
| 39 + selmon->sel->sfx = selmon->sel->x; | |
| 40 + selmon->sel->sfy = selmon->sel->y; | |
| 41 + selmon->sel->sfw = selmon->sel->w; | |
| 42 + selmon->sel->sfh = selmon->sel->h; | |
| 43 + } | |
| 44 arrange(selmon); | |
| 45 } | |
| 46 |