dwm-savefloats-6.0.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
dwm-savefloats-6.0.diff (1528B) | |
--- | |
1 URL: http://dwm.suckless.org/patches/historical/save_floats | |
2 This patch saves size and position of every floating window before it is… | |
3 into tiled mode. If the window is made floating again, the old dimension… | |
4 be restored. | |
5 | |
6 diff -r ec4baab78314 dwm.c | |
7 --- a/dwm.c Mon Dec 19 15:38:30 2011 +0100 | |
8 +++ b/dwm.c Fri Apr 06 08:23:18 2012 +0200 | |
9 @@ -86,6 +86,7 @@ | |
10 char name[256]; | |
11 float mina, maxa; | |
12 int x, y, w, h; | |
13 + int sfx, sfy, sfw, sfh; /* stored float geometry, used on mode … | |
14 int oldx, oldy, oldw, oldh; | |
15 int basew, baseh, incw, inch, maxw, maxh, minw, minh; | |
16 int bw, oldbw; | |
17 @@ -1149,6 +1150,10 @@ | |
18 updatewindowtype(c); | |
19 updatesizehints(c); | |
20 updatewmhints(c); | |
21 + c->sfx = c->x; | |
22 + c->sfy = c->y; | |
23 + c->sfw = c->w; | |
24 + c->sfh = c->h; | |
25 XSelectInput(dpy, w, EnterWindowMask|FocusChangeMask|PropertyCh… | |
26 grabbuttons(c, False); | |
27 if(!c->isfloating) | |
28 @@ -1741,8 +1746,16 @@ | |
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, False); | |
34 + /*restore last known float dimensions*/ | |
35 + resize(selmon->sel, selmon->sel->sfx, selmon->sel->sfy, | |
36 + selmon->sel->sfw, selmon->sel->sfh, False); | |
37 + else { | |
38 + /*save last known float dimensions*/ | |
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 |