From: Marco Peereboom Date: Tue, 20 Apr 2010 19:08:06 +0000 (+0000) Subject: unmap windows after stacking. much better performance! X-Git-Url: https://jasonwoof.com/gitweb/?a=commitdiff_plain;h=8586681805ba05a0b4daa80e08770fefa601220d;p=spectrwm.git unmap windows after stacking. much better performance! --- diff --git a/scrotwm.c b/scrotwm.c index 57df495..738fd9d 100644 --- a/scrotwm.c +++ b/scrotwm.c @@ -1434,7 +1434,7 @@ focus_win(struct ws_win *win) void switchws(struct swm_region *r, union arg *args) { - int wsid = args->id; + int wsid = args->id, unmap_old = 0; struct swm_region *this_r, *other_r; struct ws_win *win; struct workspace *new_ws, *old_ws; @@ -1462,9 +1462,7 @@ switchws(struct swm_region *r, union arg *args) if (old_ws->r != NULL) old_ws->old_r = old_ws->r; old_ws->r = NULL; - - TAILQ_FOREACH(win, &old_ws->winlist, entry) - unmap_window(win); + unmap_old = 1; } else { other_r->ws = old_ws; old_ws->r = other_r; @@ -1476,6 +1474,11 @@ switchws(struct swm_region *r, union arg *args) a.id = SWM_ARG_ID_FOCUSCUR; focus(new_ws->r, &a); bar_update(); + + /* unmap old windows */ + if (unmap_old) + TAILQ_FOREACH(win, &old_ws->winlist, entry) + unmap_window(win); } void @@ -4740,7 +4743,7 @@ main(int argc, char *argv[]) } done: bar_extra_stop(); - + XFreeGC(display, bar_gc); XCloseDisplay(display); return (0);