|
@ -237,7 +237,7 @@ static void zoom(const Arg *arg); |
|
|
/* variables */ |
|
|
/* variables */ |
|
|
static char stext[256]; |
|
|
static char stext[256]; |
|
|
static int screen; |
|
|
static int screen; |
|
|
static int sw, sh; /* X display screen geometry x, y, width, height */ |
|
|
|
|
|
|
|
|
static int sw, sh; /* X display screen geometry x, y, width, height */ |
|
|
static int bh, blw = 0; /* bar geometry */ |
|
|
static int bh, blw = 0; /* bar geometry */ |
|
|
static int (*xerrorxlib)(Display *, XErrorEvent *); |
|
|
static int (*xerrorxlib)(Display *, XErrorEvent *); |
|
|
static unsigned int numlockmask = 0; |
|
|
static unsigned int numlockmask = 0; |
|
@ -264,6 +264,7 @@ static DC dc; |
|
|
static Layout *lt[] = { NULL, NULL }; |
|
|
static Layout *lt[] = { NULL, NULL }; |
|
|
static Monitor *mons = NULL, *selmon = NULL; |
|
|
static Monitor *mons = NULL, *selmon = NULL; |
|
|
static Window root; |
|
|
static Window root; |
|
|
|
|
|
|
|
|
/* configuration, allows nested code to access above variables */ |
|
|
/* configuration, allows nested code to access above variables */ |
|
|
#include "config.h" |
|
|
#include "config.h" |
|
|
|
|
|
|
|
@ -284,7 +285,8 @@ applyrules(Client *c) { |
|
|
r = &rules[i]; |
|
|
r = &rules[i]; |
|
|
if((!r->title || strstr(c->name, r->title)) |
|
|
if((!r->title || strstr(c->name, r->title)) |
|
|
&& (!r->class || (ch.res_class && strstr(ch.res_class, r->class))) |
|
|
&& (!r->class || (ch.res_class && strstr(ch.res_class, r->class))) |
|
|
&& (!r->instance || (ch.res_name && strstr(ch.res_name, r->instance)))) { |
|
|
|
|
|
|
|
|
&& (!r->instance || (ch.res_name && strstr(ch.res_name, r->instance)))) |
|
|
|
|
|
{ |
|
|
c->isfloating = r->isfloating; |
|
|
c->isfloating = r->isfloating; |
|
|
c->tags |= r->tags; |
|
|
c->tags |= r->tags; |
|
|
} |
|
|
} |
|
@ -305,7 +307,6 @@ applysizehints(Client *c, int *x, int *y, int *w, int *h, Bool interact) { |
|
|
/* set minimum possible */ |
|
|
/* set minimum possible */ |
|
|
*w = MAX(1, *w); |
|
|
*w = MAX(1, *w); |
|
|
*h = MAX(1, *h); |
|
|
*h = MAX(1, *h); |
|
|
|
|
|
|
|
|
if(interact) { |
|
|
if(interact) { |
|
|
if(*x > sw) |
|
|
if(*x > sw) |
|
|
*x = sw - WIDTH(c); |
|
|
*x = sw - WIDTH(c); |
|
@ -903,7 +904,8 @@ gettextprop(Window w, Atom atom, char *text, unsigned int size) { |
|
|
strncpy(text, (char *)name.value, size - 1); |
|
|
strncpy(text, (char *)name.value, size - 1); |
|
|
else { |
|
|
else { |
|
|
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success |
|
|
if(XmbTextPropertyToTextList(dpy, &name, &list, &n) >= Success |
|
|
&& n > 0 && *list) { |
|
|
|
|
|
|
|
|
&& n > 0 && *list) |
|
|
|
|
|
{ |
|
|
strncpy(text, *list, size - 1); |
|
|
strncpy(text, *list, size - 1); |
|
|
XFreeStringList(list); |
|
|
XFreeStringList(list); |
|
|
} |
|
|
} |
|
@ -928,7 +930,8 @@ grabbuttons(Client *c, Bool focused) { |
|
|
buttons[i].mask | modifiers[j], |
|
|
buttons[i].mask | modifiers[j], |
|
|
c->win, False, BUTTONMASK, |
|
|
c->win, False, BUTTONMASK, |
|
|
GrabModeAsync, GrabModeSync, None, None); |
|
|
GrabModeAsync, GrabModeSync, None, None); |
|
|
} else |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
else |
|
|
XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, |
|
|
XGrabButton(dpy, AnyButton, AnyModifier, c->win, False, |
|
|
BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); |
|
|
BUTTONMASK, GrabModeAsync, GrabModeSync, None, None); |
|
|
} |
|
|
} |
|
@ -1385,7 +1388,7 @@ sendmon(Client *c, Monitor *m) { |
|
|
|
|
|
|
|
|
void |
|
|
void |
|
|
setclientstate(Client *c, long state) { |
|
|
setclientstate(Client *c, long state) { |
|
|
long data[] = {state, None}; |
|
|
|
|
|
|
|
|
long data[] = { state, None }; |
|
|
|
|
|
|
|
|
XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32, |
|
|
XChangeProperty(dpy, c->win, wmatom[WMState], wmatom[WMState], 32, |
|
|
PropModeReplace, (unsigned char *)data, 2); |
|
|
PropModeReplace, (unsigned char *)data, 2); |
|
|