forked from mirror/dwm
merged merge
This commit is contained in:
commit
815f9c054d
1 changed files with 16 additions and 19 deletions
35
dwm.c
35
dwm.c
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue