diff options
| author | arg@localhost.localdomain <unknown> | 2008-09-01 08:22:11 +0000 | 
|---|---|---|
| committer | arg@localhost.localdomain <unknown> | 2008-09-01 08:22:11 +0000 | 
| commit | 815f9c054d1d1fe0c0878f01399561d7758bf1ce (patch) | |
| tree | 9156704109f2bd2b2e153a95f37b54728cf6daa7 | |
| parent | ec11a3470c2775a75df00e3b69ee6ef60a467e34 (diff) | |
| parent | addc52c9485f63a71f3afa54631f3b56b6bf2225 (diff) | |
| download | dwm-815f9c054d1d1fe0c0878f01399561d7758bf1ce.tar.gz | |
merged merge
| -rw-r--r-- | dwm.c | 35 | 
1 files changed, 16 insertions, 19 deletions
| @@ -61,7 +61,7 @@  enum { CurNormal, CurResize, CurMove, CurLast };        /* cursor */  enum { ColBorder, ColFG, ColBG, ColLast };              /* color */  enum { NetSupported, NetWMName, NetLast };              /* EWMH atoms */ -enum { WMProtocols, WMDelete, WMName, WMState, WMLast };/* default atoms */ +enum { WMProtocols, WMDelete, WMState, WMLast };        /* default atoms */  enum { ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle,         ClkClientWin, ClkRootWin, ClkLast };             /* clicks */ @@ -233,7 +233,7 @@ static Client *sel = NULL;  static Client *stack = NULL;  static Cursor cursor[CurLast];  static Display *dpy; -static DC dc = {0}; +static DC dc;  static Layout *lt[] = { NULL, NULL };  static Window root, barwin;  /* configuration, allows nested code to access above variables */ @@ -250,20 +250,21 @@ applyrules(Client *c) {  	XClassHint ch = { 0 };  	/* rule matching */ -	XGetClassHint(dpy, c->win, &ch); -	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)))) { -			c->isfloating = r->isfloating; -			c->tags |= r->tags & TAGMASK; +	if(XGetClassHint(dpy, c->win, &ch)) { +		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)))) { +				c->isfloating = r->isfloating; +				c->tags |= r->tags & TAGMASK; +			}  		} +		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);  	if(!c->tags)  		c->tags = tagset[seltags];  } @@ -796,9 +797,6 @@ initfont(const char *fontstr) {  		}  	}  	else { -		if(dc.font.xfont) -			XFreeFont(dpy, dc.font.xfont); -		dc.font.xfont = NULL;  		if(!(dc.font.xfont = XLoadQueryFont(dpy, fontstr))  		&& !(dc.font.xfont = XLoadQueryFont(dpy, "fixed")))  			die("error, cannot load font: '%s'\n", fontstr); @@ -1326,7 +1324,6 @@ setup(void) {  	/* init atoms */  	wmatom[WMProtocols] = XInternAtom(dpy, "WM_PROTOCOLS", False);  	wmatom[WMDelete] = XInternAtom(dpy, "WM_DELETE_WINDOW", False); -	wmatom[WMName] = XInternAtom(dpy, "WM_NAME", False);  	wmatom[WMState] = XInternAtom(dpy, "WM_STATE", False);  	netatom[NetSupported] = XInternAtom(dpy, "_NET_SUPPORTED", False);  	netatom[NetWMName] = XInternAtom(dpy, "_NET_WM_NAME", False); @@ -1634,7 +1631,7 @@ updatesizehints(Client *c) {  void  updatetitle(Client *c) {  	if(!gettextprop(c->win, netatom[NetWMName], c->name, sizeof c->name)) -		gettextprop(c->win, wmatom[WMName], c->name, sizeof c->name); +		gettextprop(c->win, XA_WM_NAME, c->name, sizeof c->name);  }  void | 
