some cleanup handling for index based mon search
This commit is contained in:
parent
27db9d4448
commit
029655bb22
37
dwm.c
37
dwm.c
@ -177,6 +177,7 @@ 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 *getmon(Window w);
|
static Monitor *getmon(Window w);
|
||||||
|
static Monitor *getmonn(unsigned int n);
|
||||||
static Monitor *getmonxy(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);
|
||||||
@ -800,18 +801,13 @@ focusin(XEvent *e) { /* there are some broken focus acquiring clients */
|
|||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
void
|
void
|
||||||
focusmon(const Arg *arg) {
|
focusmon(const Arg *arg) {
|
||||||
unsigned int i;
|
Monitor *m;
|
||||||
Monitor *m;
|
|
||||||
|
|
||||||
for(i = 0, m = mons; m; m = m->next, i++)
|
if(!(m = getmonn(arg->ui)) || m == selmon)
|
||||||
if(i == arg->ui) {
|
return;
|
||||||
if(m == selmon)
|
unfocus(selmon->sel);
|
||||||
return;
|
selmon = m;
|
||||||
unfocus(selmon->sel);
|
focus(NULL);
|
||||||
selmon = m;
|
|
||||||
focus(NULL);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif /* XINERAMA */
|
#endif /* XINERAMA */
|
||||||
|
|
||||||
@ -879,6 +875,15 @@ getmon(Window w) {
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Monitor *
|
||||||
|
getmonn(unsigned int n) {
|
||||||
|
unsigned int i;
|
||||||
|
Monitor *m;
|
||||||
|
|
||||||
|
for(m = mons, i = 0; m && i != n; m = m->next, i++);
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
|
||||||
Monitor *
|
Monitor *
|
||||||
getmonxy(int x, int y) {
|
getmonxy(int x, int y) {
|
||||||
Monitor *m;
|
Monitor *m;
|
||||||
@ -1542,17 +1547,11 @@ tag(const Arg *arg) {
|
|||||||
#ifdef XINERAMA
|
#ifdef XINERAMA
|
||||||
void
|
void
|
||||||
tagmon(const Arg *arg) {
|
tagmon(const Arg *arg) {
|
||||||
unsigned int i;
|
|
||||||
Client *c;
|
|
||||||
Monitor *m;
|
Monitor *m;
|
||||||
|
|
||||||
if(!(c = selmon->sel))
|
if(!selmon->sel || !(m = getmonn(arg->ui)))
|
||||||
return;
|
return;
|
||||||
for(i = 0, m = mons; m; m = m->next, i++)
|
sendmon(selmon->sel, m);
|
||||||
if(i == arg->ui) {
|
|
||||||
sendmon(c, m);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
#endif /* XINERAMA */
|
#endif /* XINERAMA */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user