|
|
@ -176,8 +176,8 @@ static void focusin(XEvent *e);
|
|
|
|
static void focusstack(const Arg *arg);
|
|
|
|
static void focusstack(const Arg *arg);
|
|
|
|
static Client *getclient(Window w);
|
|
|
|
static Client *getclient(Window w);
|
|
|
|
static unsigned long getcolor(const char *colstr);
|
|
|
|
static unsigned long getcolor(const char *colstr);
|
|
|
|
static Monitor *getmonitor(Window w);
|
|
|
|
static Monitor *getmon(Window w);
|
|
|
|
static Monitor *getmonitorxy(int x, int y);
|
|
|
|
static Monitor *getmonxy(int x, int y);
|
|
|
|
static Bool getrootpointer(int *x, int *y);
|
|
|
|
static Bool getrootpointer(int *x, int *y);
|
|
|
|
static long getstate(Window w);
|
|
|
|
static long getstate(Window w);
|
|
|
|
static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
|
|
|
|
static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size);
|
|
|
@ -401,7 +401,7 @@ buttonpress(XEvent *e) {
|
|
|
|
|
|
|
|
|
|
|
|
click = ClkRootWin;
|
|
|
|
click = ClkRootWin;
|
|
|
|
/* focus monitor if necessary */
|
|
|
|
/* focus monitor if necessary */
|
|
|
|
if((m = getmonitor(ev->window)) && m != selmon) {
|
|
|
|
if((m = getmon(ev->window)) && m != selmon) {
|
|
|
|
unfocus(selmon->sel);
|
|
|
|
unfocus(selmon->sel);
|
|
|
|
selmon = m;
|
|
|
|
selmon = m;
|
|
|
|
focus(NULL);
|
|
|
|
focus(NULL);
|
|
|
@ -747,7 +747,7 @@ enternotify(XEvent *e) {
|
|
|
|
|
|
|
|
|
|
|
|
if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root)
|
|
|
|
if((ev->mode != NotifyNormal || ev->detail == NotifyInferior) && ev->window != root)
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
if((m = getmonitor(ev->window)) && m != selmon) {
|
|
|
|
if((m = getmon(ev->window)) && m != selmon) {
|
|
|
|
unfocus(selmon->sel);
|
|
|
|
unfocus(selmon->sel);
|
|
|
|
selmon = m;
|
|
|
|
selmon = m;
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -762,7 +762,7 @@ expose(XEvent *e) {
|
|
|
|
Monitor *m;
|
|
|
|
Monitor *m;
|
|
|
|
XExposeEvent *ev = &e->xexpose;
|
|
|
|
XExposeEvent *ev = &e->xexpose;
|
|
|
|
|
|
|
|
|
|
|
|
if(ev->count == 0 && (m = getmonitor(ev->window)))
|
|
|
|
if(ev->count == 0 && (m = getmon(ev->window)))
|
|
|
|
drawbar(m);
|
|
|
|
drawbar(m);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -864,13 +864,13 @@ getcolor(const char *colstr) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Monitor *
|
|
|
|
Monitor *
|
|
|
|
getmonitor(Window w) {
|
|
|
|
getmon(Window w) {
|
|
|
|
int x, y;
|
|
|
|
int x, y;
|
|
|
|
Client *c;
|
|
|
|
Client *c;
|
|
|
|
Monitor *m;
|
|
|
|
Monitor *m;
|
|
|
|
|
|
|
|
|
|
|
|
if(w == root && getrootpointer(&x, &y))
|
|
|
|
if(w == root && getrootpointer(&x, &y))
|
|
|
|
return getmonitorxy(x, y);
|
|
|
|
return getmonxy(x, y);
|
|
|
|
for(m = mons; m; m = m->next)
|
|
|
|
for(m = mons; m; m = m->next)
|
|
|
|
if(w == m->barwin)
|
|
|
|
if(w == m->barwin)
|
|
|
|
return m;
|
|
|
|
return m;
|
|
|
@ -880,7 +880,7 @@ getmonitor(Window w) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Monitor *
|
|
|
|
Monitor *
|
|
|
|
getmonitorxy(int x, int y) {
|
|
|
|
getmonxy(int x, int y) {
|
|
|
|
Monitor *m;
|
|
|
|
Monitor *m;
|
|
|
|
|
|
|
|
|
|
|
|
for(m = mons; m; m = m->next)
|
|
|
|
for(m = mons; m; m = m->next)
|
|
|
@ -1205,7 +1205,7 @@ movemouse(const Arg *arg) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
while(ev.type != ButtonRelease);
|
|
|
|
while(ev.type != ButtonRelease);
|
|
|
|
XUngrabPointer(dpy, CurrentTime);
|
|
|
|
XUngrabPointer(dpy, CurrentTime);
|
|
|
|
if((m = getmonitorxy(c->x + c->w / 2, c->y + c->h / 2)) != selmon)
|
|
|
|
if((m = getmonxy(c->x + c->w / 2, c->y + c->h / 2)) != selmon)
|
|
|
|
sendmon(c, m);
|
|
|
|
sendmon(c, m);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1314,7 +1314,7 @@ resizemouse(const Arg *arg) {
|
|
|
|
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
|
|
|
|
XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w + c->bw - 1, c->h + c->bw - 1);
|
|
|
|
XUngrabPointer(dpy, CurrentTime);
|
|
|
|
XUngrabPointer(dpy, CurrentTime);
|
|
|
|
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
|
|
|
|
while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
|
|
|
|
if((m = getmonitorxy(c->x + c->w / 2, c->y + c->h / 2)) != selmon)
|
|
|
|
if((m = getmonxy(c->x + c->w / 2, c->y + c->h / 2)) != selmon)
|
|
|
|
sendmon(c, m);
|
|
|
|
sendmon(c, m);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1809,7 +1809,7 @@ updategeom(void) {
|
|
|
|
/* select focused monitor */
|
|
|
|
/* select focused monitor */
|
|
|
|
cleanupmons();
|
|
|
|
cleanupmons();
|
|
|
|
mons = newmons;
|
|
|
|
mons = newmons;
|
|
|
|
selmon = getmonitor(root);
|
|
|
|
selmon = getmon(root);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
void
|
|
|
|