diff options
| author | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2012-03-10 04:54:49 +0200 |
|---|---|---|
| committer | Ivan Kanakarakis <ivan.kanak@gmail.com> | 2012-03-10 17:07:56 +0200 |
| commit | 7c48de9a60890747f69ede1b6a6819bd3c26f033 (patch) | |
| tree | 8df61cbb3fd59405bcef3b05af785fc8752c412a | |
| parent | b4d831ab278cb3349daea083b7260b5defbd34ec (diff) | |
only select a desktop if needed
| -rw-r--r-- | monsterwm.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/monsterwm.c b/monsterwm.c index 52f4ceb..d5d2d80 100644 --- a/monsterwm.c +++ b/monsterwm.c @@ -331,7 +331,7 @@ void desktopinfo(void) { fprintf(stdout, "%d:%d:%d:%d:%d%c", d, n, mode, current_desktop == cd, urgent, d+1==DESKTOPS?'\n':' '); } fflush(stdout); - select_desktop(cd); + if (cd != d-1) select_desktop(cd); } /* a destroy notification is received when a window is being closed @@ -466,7 +466,7 @@ void maprequest(XEvent *e) { update_current(c); grabbuttons(c); - select_desktop(cd); + if (cd != newdsk) select_desktop(cd); if (cd == newdsk) { XMapWindow(dis, c->win); update_current(c); } else if (follow) change_desktop(&(Arg){.i = newdsk}); @@ -649,7 +649,7 @@ void removeclient(client *c) { *p = c->next; free(c); c = NULL; update_current(prevfocus); - select_desktop(cd); + if (cd != nd-1) select_desktop(cd); } /* main event loop - on receival of an event call the appropriate event handler */ @@ -861,7 +861,7 @@ client* wintoclient(Window w) { int d = 0, cd = current_desktop; for (Bool found = False; d<DESKTOPS && !found; ++d) for (select_desktop(d), c=head; c && !(found = (w == c->win)); c=c->next); - select_desktop(cd); + if (cd != d-1) select_desktop(cd); return c; } |
