Xinqi Bao's Git
projects
/
dwm.git
/ commitdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
fc21dd4
)
mark broken clients as broken
author
[email protected]
<unknown>
Sun, 12 Jul 2009 21:49:06 +0000
(22:49 +0100)
committer
[email protected]
<unknown>
Sun, 12 Jul 2009 21:49:06 +0000
(22:49 +0100)
dwm.c
patch
|
blob
|
history
diff --git
a/dwm.c
b/dwm.c
index
bfeae15
..
553194d
100644
(file)
--- a/
dwm.c
+++ b/
dwm.c
@@
-237,6
+237,7
@@
static int xerrorstart(Display *dpy, XErrorEvent *ee);
static void zoom(const Arg *arg);
/* variables */
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 */
static char stext[256], ntext[8];
static int screen;
static int sw, sh; /* X display screen geometry width, height */
@@
-275,6
+276,7
@@
struct NumTags { char limitexceeded[sizeof(unsigned int) * 8 < LENGTH(tags) ? -1
/* function implementations */
void
applyrules(Client *c) {
/* function implementations */
void
applyrules(Client *c) {
+ const char *class, *instance;
unsigned int i;
const Rule *r;
Monitor *m;
unsigned int i;
const Rule *r;
Monitor *m;
@@
-283,11
+285,13
@@
applyrules(Client *c) {
/* rule matching */
c->isfloating = c->tags = 0;
if(XGetClassHint(dpy, c->win, &ch)) {
/* 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))
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;
{
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);
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
}
void