1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
First apply rmaster, then pertag, then this patch for rmaster-pertag
--- a/dwm.c
+++ b/dwm.c
@@ -136,6 +136,7 @@ struct Monitor {
char ltsymbol[16];
float mfact;
int nmaster;
+ int rmaster;
int num;
int by; /* bar geometry */
int mx, my, mw, mh; /* screen size */
@@ -143,7 +144,6 @@ struct Monitor {
unsigned int seltags;
unsigned int sellt;
unsigned int tagset[2];
- int rmaster;
int showbar;
int topbar;
Client *clients;
@@ -322,6 +322,7 @@ static Window root, wmcheckwin;
struct Pertag {
unsigned int curtag, prevtag; /* current and previous tag */
int nmasters[LENGTH(tags) + 1]; /* number of windows in master area */
+ int rmasters[LENGTH(tags) + 1]; /* rmasters per tag */
float mfacts[LENGTH(tags) + 1]; /* mfacts per tag */
unsigned int sellts[LENGTH(tags) + 1]; /* selected layouts */
const Layout *ltidxs[LENGTH(tags) + 1][2]; /* matrix of tags and layouts indexes */
@@ -787,6 +788,7 @@ createmon(void)
for (i = 0; i <= LENGTH(tags); i++) {
m->pertag->nmasters[i] = m->nmaster;
+ m->pertag->rmasters[i] = m->rmaster;
m->pertag->mfacts[i] = m->mfact;
m->pertag->ltidxs[i][0] = m->lt[0];
@@ -2076,8 +2078,10 @@ void
togglermaster(const Arg *arg)
{
selmon->rmaster = !selmon->rmaster;
+ selmon->pertag->rmasters[selmon->pertag->curtag] = selmon->rmaster;
/* now mfact represents the left factor */
selmon->mfact = 1.0 - selmon->mfact;
+ selmon->pertag->mfacts[selmon->pertag->curtag] = selmon->mfact;
if (selmon->lt[selmon->sellt]->arrange)
arrange(selmon);
}
@@ -2120,6 +2124,7 @@ toggleview(const Arg *arg)
/* apply settings for this view */
selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag];
+ selmon->rmaster = selmon->pertag->rmasters[selmon->pertag->curtag];
selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag];
selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag];
selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt];
@@ -2572,6 +2577,7 @@ view(const Arg *arg)
}
selmon->nmaster = selmon->pertag->nmasters[selmon->pertag->curtag];
+ selmon->rmaster = selmon->pertag->rmasters[selmon->pertag->curtag];
selmon->mfact = selmon->pertag->mfacts[selmon->pertag->curtag];
selmon->sellt = selmon->pertag->sellts[selmon->pertag->curtag];
selmon->lt[selmon->sellt] = selmon->pertag->ltidxs[selmon->pertag->curtag][selmon->sellt];
|