commit ae73d513331b62732d07ebc66affe93d059f4040 from: Stefan Sperling date: Mon Sep 24 08:53:16 2018 UTC only allow one tog view per type commit - 38ce06e0433dbfa9ac9476741db567062839dcef commit + ae73d513331b62732d07ebc66affe93d059f4040 blob - fbbf95296b77479b91e2d96e5810637ebd1702cb blob + 75e4fb3b760bc10f77b32abb430480e3fd07e9cb --- tog/tog.c +++ tog/tog.c @@ -507,8 +507,17 @@ view_loop(struct tog_view *view) goto done; } if (new_view) { + struct tog_view *v, *t; view->focussed = 0; - /* TODO: de-duplicate! */ + /* Only allow one view per type. */ + TAILQ_FOREACH_SAFE(v, &views, entry, t) { + if (v->type != new_view->type) + continue; + TAILQ_REMOVE(&views, v, entry); + err = view_close(v); + if (err) + goto done; + } TAILQ_INSERT_TAIL(&views, new_view, entry); if (new_view->parent) { err = view_set_child(new_view->parent, new_view);