|
|
@ -289,31 +289,31 @@ applyrules(Client *c) {
|
|
|
|
unsigned int i;
|
|
|
|
unsigned int i;
|
|
|
|
const Rule *r;
|
|
|
|
const Rule *r;
|
|
|
|
Monitor *m;
|
|
|
|
Monitor *m;
|
|
|
|
XClassHint ch = { 0 };
|
|
|
|
XClassHint ch = { NULL, NULL };
|
|
|
|
|
|
|
|
|
|
|
|
/* rule matching */
|
|
|
|
/* rule matching */
|
|
|
|
c->isfloating = c->tags = 0;
|
|
|
|
c->isfloating = c->tags = 0;
|
|
|
|
if(XGetClassHint(dpy, c->win, &ch)) {
|
|
|
|
XGetClassHint(dpy, c->win, &ch);
|
|
|
|
class = ch.res_class ? ch.res_class : broken;
|
|
|
|
class = ch.res_class ? ch.res_class : broken;
|
|
|
|
instance = ch.res_name ? ch.res_name : broken;
|
|
|
|
instance = ch.res_name ? ch.res_name : broken;
|
|
|
|
for(i = 0; i < LENGTH(rules); i++) {
|
|
|
|
|
|
|
|
r = &rules[i];
|
|
|
|
for(i = 0; i < LENGTH(rules); i++) {
|
|
|
|
if((!r->title || strstr(c->name, r->title))
|
|
|
|
r = &rules[i];
|
|
|
|
&& (!r->class || strstr(class, r->class))
|
|
|
|
if((!r->title || strstr(c->name, r->title))
|
|
|
|
&& (!r->instance || strstr(instance, r->instance)))
|
|
|
|
&& (!r->class || strstr(class, r->class))
|
|
|
|
{
|
|
|
|
&& (!r->instance || strstr(instance, r->instance)))
|
|
|
|
c->isfloating = r->isfloating;
|
|
|
|
{
|
|
|
|
c->tags |= r->tags;
|
|
|
|
c->isfloating = r->isfloating;
|
|
|
|
for(m = mons; m && m->num != r->monitor; m = m->next);
|
|
|
|
c->tags |= r->tags;
|
|
|
|
if(m)
|
|
|
|
for(m = mons; m && m->num != r->monitor; m = m->next);
|
|
|
|
c->mon = m;
|
|
|
|
if(m)
|
|
|
|
}
|
|
|
|
c->mon = m;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if(ch.res_class)
|
|
|
|
|
|
|
|
XFree(ch.res_class);
|
|
|
|
|
|
|
|
if(ch.res_name)
|
|
|
|
|
|
|
|
XFree(ch.res_name);
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(ch.res_class)
|
|
|
|
|
|
|
|
XFree(ch.res_class);
|
|
|
|
|
|
|
|
if(ch.res_name)
|
|
|
|
|
|
|
|
XFree(ch.res_name);
|
|
|
|
c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags];
|
|
|
|
c->tags = c->tags & TAGMASK ? c->tags & TAGMASK : c->mon->tagset[c->mon->seltags];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|