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