all repos — dwm @ 8dc9fcf1b95db927ce50a63c7e571fdb074529e8

my dwm build

mark broken clients as broken
anselm@x200s.config unknown
Sun, 12 Jul 2009 22:49:06 +0100
commit

8dc9fcf1b95db927ce50a63c7e571fdb074529e8

parent

fc21dd4b7e65bb511ac10f8bd8f469fe0f00a76e

1 files changed, 8 insertions(+), 2 deletions(-)

jump to
M dwm.cdwm.c

@@ -237,6 +237,7 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee);

static void zoom(const Arg *arg); /* variables */ +static const char broken[] = "broken"; static char stext[256], ntext[8]; static int screen; static int sw, sh; /* X display screen geometry width, height */

@@ -275,6 +276,7 @@

/* function implementations */ void applyrules(Client *c) { + const char *class, *instance; unsigned int i; const Rule *r; Monitor *m;

@@ -283,11 +285,13 @@

/* rule matching */ c->isfloating = c->tags = 0; if(XGetClassHint(dpy, c->win, &ch)) { + class = ch.res_class ? ch.res_class : broken; + instance = ch.res_name ? ch.res_name : broken; for(i = 0; i < LENGTH(rules); i++) { r = &rules[i]; if((!r->title || strstr(c->name, r->title)) - && (!r->class || (ch.res_class && strstr(ch.res_class, r->class))) - && (!r->instance || (ch.res_name && strstr(ch.res_name, r->instance)))) + && (!r->class || strstr(class, r->class)) + && (!r->instance || strstr(instance, r->instance))) { c->isfloating = r->isfloating; c->tags |= r->tags;

@@ -1819,6 +1823,8 @@ void

updatetitle(Client *c) { if(!gettextprop(c->win, netatom[NetWMName], c->name, sizeof c->name)) gettextprop(c->win, XA_WM_NAME, c->name, sizeof c->name); + if(c->name[0] == '\0') /* hack to mark broken clients */ + strcpy(c->name, broken); } void