summaryrefslogtreecommitdiff
path: root/qubes-dwm-6.2/dwm-rmaster-pertag-6.1.diff
blob: 8ef3c017e9ce5335db9cac56656ee23e5cd31c52 (plain)
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];