multimon-4-added-statusall-toggle-replacing-need-for-patch.diff - sites - publi… | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
Refs | |
--- | |
multimon-4-added-statusall-toggle-replacing-need-for-patch.diff (6165B) | |
--- | |
1 From d318ffdc7ab7a365e548776a1d8ed5ccbd67cd42 Mon Sep 17 00:00:00 2001 | |
2 From: "Gary B. Genett" <[email protected]> | |
3 Date: Mon, 24 Mar 2014 14:44:04 -0700 | |
4 Subject: added statusall toggle, replacing need for patch | |
5 MIME-Version: 1.0 | |
6 Content-Type: multipart/mixed; boundary="------------1.8.3.2" | |
7 | |
8 This is a multi-part message in MIME format. | |
9 --------------1.8.3.2 | |
10 Content-Type: text/plain; charset=UTF-8; format=fixed | |
11 Content-Transfer-Encoding: 8bit | |
12 | |
13 --- | |
14 config.def.h | 1 + | |
15 dwm.c | 12 ++++++------ | |
16 2 files changed, 7 insertions(+), 6 deletions(-) | |
17 | |
18 | |
19 --------------1.8.3.2 | |
20 Content-Type: text/x-patch; name="0004-added-statusall-toggle-replacing-… | |
21 Content-Transfer-Encoding: 8bit | |
22 Content-Disposition: attachment; filename="0004-added-statusall-toggle-r… | |
23 | |
24 diff --git a/config.def.h b/config.def.h | |
25 index 92b1a461604c81c061f60780dc189a83dd697562..b4759a569dc23754dd240da5… | |
26 --- a/config.def.h | |
27 +++ b/config.def.h | |
28 @@ -24,20 +24,21 @@ static const Rule rules[] = { | |
29 /* class instance title tags mask isfloating … | |
30 { "Gimp", NULL, NULL, 0, True, … | |
31 { "Firefox", NULL, NULL, 1 << 8, False, … | |
32 }; | |
33 | |
34 /* layout(s) */ | |
35 static const float mfact = 0.55; /* factor of master area size [0.… | |
36 static const int nmaster = 1; /* number of clients in master ar… | |
37 static const int nviews = 1; /* number of tags highlighted by … | |
38 static const Bool resizehints = True; /* True means respect size hints … | |
39 +static const Bool statusall = False;/* True means status is shown in … | |
40 | |
41 static const int master[1]; /* nmaster override per monitor */ | |
42 //static const int master[] = {1,-1}; /* monitor 0 = nmaster 1, monitor… | |
43 static const int views[1]; /* nviews override per monitor */ | |
44 //static const int views[] = {4,~0}; /* monitor 0 = nviews 4, monitor … | |
45 | |
46 static const Layout layouts[] = { | |
47 /* symbol arrange function */ | |
48 { "[]=", tile }, /* first entry is default */ | |
49 { "><>", NULL }, /* no layout function means floating b… | |
50 diff --git a/dwm.c b/dwm.c | |
51 index 2b3bf5f99c95180cfb5a3bb04b4181481fbe7bbd..92aa91a75a39cf1ed298a227… | |
52 --- a/dwm.c | |
53 +++ b/dwm.c | |
54 @@ -719,21 +719,21 @@ drawbar(Monitor *m) { | |
55 drw_setscheme(drw, &scheme[SchemeNorm]); | |
56 drw_text(drw, x, 0, w, bh, m->ltsymbol, 0); | |
57 x += w; | |
58 char custom[4] = {0}; // needs to be +1 of actual size, for som… | |
59 snprintf(custom, sizeof(custom), "<%d>", m->num); | |
60 w = bmw = TEXTW(custom); | |
61 drw_setscheme(drw, m == selmon ? &scheme[SchemeSel] : &scheme[S… | |
62 drw_text(drw, x, 0, w, bh, custom, 0); | |
63 x += w; | |
64 xx = x; | |
65 - if(m == selmon) { /* status is only drawn on selected monitor */ | |
66 + if(m == selmon || statusall) { /* status is only drawn on selec… | |
67 w = TEXTW(stext); | |
68 x = m->ww - w; | |
69 if(x < xx) { | |
70 x = xx; | |
71 w = m->ww - xx; | |
72 } | |
73 drw_setscheme(drw, &scheme[SchemeNorm]); | |
74 drw_text(drw, x, 0, w, bh, stext, 0); | |
75 } | |
76 else | |
77 @@ -779,21 +779,21 @@ enternotify(XEvent *e) { | |
78 return; | |
79 focus(c); | |
80 } | |
81 | |
82 void | |
83 expose(XEvent *e) { | |
84 Monitor *m; | |
85 XExposeEvent *ev = &e->xexpose; | |
86 | |
87 if(ev->count == 0 && (m = wintomon(ev->window))) | |
88 - drawbar(m); | |
89 + statusall ? drawbars() : drawbar(m); | |
90 } | |
91 | |
92 void | |
93 focus(Client *c) { | |
94 if(!c || !ISVISIBLE(c)) | |
95 for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext… | |
96 /* was if(selmon->sel) */ | |
97 if(selmon->sel && selmon->sel != c) | |
98 unfocus(selmon->sel, False); | |
99 if(c) { | |
100 @@ -1222,21 +1222,21 @@ propertynotify(XEvent *e) { | |
101 updatesizehints(c); | |
102 break; | |
103 case XA_WM_HINTS: | |
104 updatewmhints(c); | |
105 drawbars(); | |
106 break; | |
107 } | |
108 if(ev->atom == XA_WM_NAME || ev->atom == netatom[NetWMN… | |
109 updatetitle(c); | |
110 if(c == c->mon->sel) | |
111 - drawbar(c->mon); | |
112 + statusall ? drawbars() : drawbar(c->mon… | |
113 } | |
114 if(ev->atom == netatom[NetWMWindowType]) | |
115 updatewindowtype(c); | |
116 } | |
117 } | |
118 | |
119 void | |
120 quit(const Arg *arg) { | |
121 running = False; | |
122 } | |
123 @@ -1325,21 +1325,21 @@ resizemouse(const Arg *arg) { | |
124 focus(NULL); | |
125 } | |
126 } | |
127 | |
128 void | |
129 restack(Monitor *m) { | |
130 Client *c; | |
131 XEvent ev; | |
132 XWindowChanges wc; | |
133 | |
134 - drawbar(m); | |
135 + statusall ? drawbars() : drawbar(m); | |
136 if(!m->sel) | |
137 return; | |
138 if(m->sel->isfloating || !m->lt[m->sellt]->arrange) | |
139 XRaiseWindow(dpy, m->sel->win); | |
140 if(m->lt[m->sellt]->arrange) { | |
141 wc.stack_mode = Below; | |
142 wc.sibling = m->barwin; | |
143 for(c = m->stack; c; c = c->snext) | |
144 if(!c->isfloating && ISVISIBLE(c)) { | |
145 XConfigureWindow(dpy, c->win, CWSibling… | |
146 @@ -1475,21 +1475,21 @@ setfullscreen(Client *c, Bool fullscreen) { | |
147 void | |
148 setlayout(const Arg *arg) { | |
149 if(!arg || !arg->v || arg->v != selmon->lt[selmon->sellt]) | |
150 selmon->sellt ^= 1; | |
151 if(arg && arg->v) | |
152 selmon->lt[selmon->sellt] = (Layout *)arg->v; | |
153 strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, si… | |
154 if(selmon->sel) | |
155 arrange(selmon); | |
156 else | |
157 - drawbar(selmon); | |
158 + statusall ? drawbars() : drawbar(selmon); | |
159 } | |
160 | |
161 /* arg > 1.0 will set mfact absolutly */ | |
162 void | |
163 setmfact(const Arg *arg) { | |
164 float f; | |
165 | |
166 if(!arg || !selmon->lt[selmon->sellt]->arrange) | |
167 return; | |
168 f = arg->f < 1.0 ? arg->f + selmon->mfact : arg->f - 1.0; | |
169 @@ -1941,21 +1941,21 @@ updatetitle(Client *c) { | |
170 if(!gettextprop(c->win, netatom[NetWMName], c->name, sizeof c->… | |
171 gettextprop(c->win, XA_WM_NAME, c->name, sizeof c->name… | |
172 if(c->name[0] == '\0') /* hack to mark broken clients */ | |
173 strcpy(c->name, broken); | |
174 } | |
175 | |
176 void | |
177 updatestatus(void) { | |
178 if(!gettextprop(root, XA_WM_NAME, stext, sizeof(stext))) | |
179 strcpy(stext, "dwm-"VERSION); | |
180 - drawbar(selmon); | |
181 + statusall ? drawbars() : drawbar(selmon); | |
182 } | |
183 | |
184 void | |
185 updatewindowtype(Client *c) { | |
186 Atom state = getatomprop(c, netatom[NetWMState]); | |
187 Atom wtype = getatomprop(c, netatom[NetWMWindowType]); | |
188 | |
189 if(state == netatom[NetWMFullscreen]) | |
190 setfullscreen(c, True); | |
191 if(wtype == netatom[NetWMWindowTypeDialog]) | |
192 | |
193 --------------1.8.3.2-- | |
194 | |
195 |