tsome cleanup handling for index based mon search - dwm - [fork] customized bui… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 029655bb2271a18d3a191f22502cbd9b713a9189 | |
parent 27db9d44489fea54275de9d25a9eff7118ebb3ea | |
Author: Anselm R Garbe <[email protected]> | |
Date: Sat, 27 Jun 2009 18:50:50 +0100 | |
some cleanup handling for index based mon search | |
Diffstat: | |
M dwm.c | 39 +++++++++++++++--------------… | |
1 file changed, 19 insertions(+), 20 deletions(-) | |
--- | |
diff --git a/dwm.c b/dwm.c | |
t@@ -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); | |
t@@ -800,18 +801,13 @@ focusin(XEvent *e) { /* there are some broken focus acqu… | |
#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; | |
- } | |
+ Monitor *m; | |
+ | |
+ if(!(m = getmonn(arg->ui)) || m == selmon) | |
+ return; | |
+ unfocus(selmon->sel); | |
+ selmon = m; | |
+ focus(NULL); | |
} | |
#endif /* XINERAMA */ | |
t@@ -880,6 +876,15 @@ getmon(Window w) { | |
} | |
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; | |
t@@ -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 */ | |