Introduction
Introduction Statistics Contact Development Disclaimer Help
tsome drawbar() polishing, and certain related fixes - dwm - [fork] customized …
git clone git://src.adamsgaard.dk/dwm
Log
Files
Refs
README
LICENSE
---
commit 6ab163c6955cf7830dfbf39b6c7ba16114054d94
parent e8244395e4fb7f0617367187c799b1fbddeac7a2
Author: Anselm R Garbe <[email protected]>
Date: Fri, 15 Feb 2008 16:00:02 +0000
some drawbar() polishing, and certain related fixes
Diffstat:
M dwm.c | 54 +++++++++++++++++++----------…
1 file changed, 33 insertions(+), 21 deletions(-)
---
diff --git a/dwm.c b/dwm.c
t@@ -164,9 +164,9 @@ void grabbuttons(Client *c, Bool focused);
void grabkeys(void);
unsigned int idxoftag(const char *tag);
void initfont(Monitor*, const char *fontstr);
-Bool isoccupied(Monitor *m, unsigned int t);
+Bool isoccupied(unsigned int monitor, unsigned int t);
Bool isprotodel(Client *c);
-Bool isurgent(int monitor, unsigned int t);
+Bool isurgent(unsigned int monitor, unsigned int t);
Bool isvisible(Client *c, int monitor);
void keypress(XEvent *e);
void killclient(const char *arg);
t@@ -562,39 +562,46 @@ detachstack(Client *c) {
void
drawbar(void) {
int i, j, x;
+ Client *c;
for(i = 0; i < mcount; i++) {
Monitor *m = &monitors[i];
m->dc.x = 0;
+ for(c = stack; c && !isvisible(c, i); c = c->snext);
+ fprintf(stderr, "m%d %s\n", i, c ? c->name : "NIL");
for(j = 0; j < LENGTH(tags); j++) {
m->dc.w = textw(m, tags[j]);
if(m->seltags[j]) {
drawtext(m, tags[j], m->dc.sel, isurgent(i, j)…
- drawsquare(m, sel && sel->tags[j] && sel->moni…
- isoccupied(m, j), isurgent(i, …
+ drawsquare(m, c && c->tags[j] && c->monitor ==…
+ isoccupied(i, j), isurgent(i, …
}
else {
drawtext(m, tags[j], m->dc.norm, isurgent(i, j…
- drawsquare(m, sel && sel->tags[j] && sel->moni…
- isoccupied(m, j), isurgent(i, …
+ drawsquare(m, c && c->tags[j] && c->monitor ==…
+ isoccupied(i, j), isurgent(i, …
}
m->dc.x += m->dc.w;
}
m->dc.w = blw;
drawtext(m, m->layout->symbol, m->dc.norm, False);
x = m->dc.x + m->dc.w;
- m->dc.w = textw(m, stext);
- m->dc.x = m->sw - m->dc.w;
- if(m->dc.x < x) {
- m->dc.x = x;
- m->dc.w = m->sw - x;
+ if(i == selmonitor) {
+ m->dc.w = textw(m, stext);
+ m->dc.x = m->sw - m->dc.w;
+ if(m->dc.x < x) {
+ m->dc.x = x;
+ m->dc.w = m->sw - x;
+ }
+ drawtext(m, stext, m->dc.norm, False);
}
- drawtext(m, stext, m->dc.norm, False);
+ else
+ m->dc.x = m->sw;
if((m->dc.w = m->dc.x - x) > bh) {
m->dc.x = x;
- if(sel && sel->monitor == selmonitor) {
- drawtext(m, sel->name, m->dc.sel, False);
- drawsquare(m, False, sel->isfloating, False, m…
+ if(c) {
+ drawtext(m, c->name, m->dc.sel, False);
+ drawsquare(m, False, c->isfloating, False, m->…
}
else
drawtext(m, NULL, m->dc.norm, False);
t@@ -679,8 +686,10 @@ enternotify(XEvent *e) {
Client *c;
XCrossingEvent *ev = &e->xcrossing;
- if(ev->mode != NotifyNormal || ev->detail == NotifyInferior);
- //return;
+ if(ev->mode != NotifyNormal || ev->detail == NotifyInferior) {
+ if(!isxinerama || ev->window != monitors[selmonitor].root)
+ return;
+ }
if((c = getclient(ev->window)))
focus(c);
else {
t@@ -747,6 +756,7 @@ focus(Client *c) {
}
else {
XSetInputFocus(dpy, m->root, RevertToPointerRoot, CurrentTime);
+ drawbar();
}
}
t@@ -972,11 +982,11 @@ initfont(Monitor *m, const char *fontstr) {
}
Bool
-isoccupied(Monitor *m, unsigned int t) {
+isoccupied(unsigned int monitor, unsigned int t) {
Client *c;
for(c = clients; c; c = c->next)
- if(c->tags[t] && c->monitor == selmonitor)
+ if(c->tags[t] && c->monitor == monitor)
return True;
return False;
}
t@@ -997,7 +1007,7 @@ isprotodel(Client *c) {
}
Bool
-isurgent(int monitor, unsigned int t) {
+isurgent(unsigned int monitor, unsigned int t) {
Client *c;
for(c = clients; c; c = c->next)
t@@ -1010,8 +1020,10 @@ Bool
isvisible(Client *c, int monitor) {
unsigned int i;
+ if(c->monitor != monitor)
+ return False;
for(i = 0; i < LENGTH(tags); i++)
- if(c->tags[i] && monitors[c->monitor].seltags[i] && c->monitor…
+ if(c->tags[i] && monitors[c->monitor].seltags[i])
return True;
return False;
}
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.