dwl

My patch set and modifications to dwl
git clone git://git.ethandl.dev/dwl
Log | Files | Refs | README | LICENSE

commit 4bc7f2d8e48e0836bdbc7084cc0d4105991724c7
parent a224f26469f49c04f895d65aa8b66c37005f33c9
Author: Devin J. Pohly <djpohly@gmail.com>
Date:   Fri, 24 Jul 2020 17:35:19 -0400

remove n counter from zoom(), add comments

Diffstat:
Mdwl.c | 19+++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/dwl.c b/dwl.c @@ -1640,28 +1640,31 @@ xytomon(double x, double y) void zoom(const Arg *arg) { - unsigned int n = 0; Client *c, *sel = selclient(); if (!sel || !selmon->lt[selmon->sellt]->arrange || sel->isfloating) return; + /* Search for the first tiled window that is not sel, marking sel as + * NULL if we pass it along the way */ wl_list_for_each(c, &clients, link) if (VISIBLEON(c, selmon) && !c->isfloating) { - if (++n == 1 && c == sel) - sel = NULL; - else if (n == 2) { - if (!sel) - sel = c; + if (c != sel) break; - } + sel = NULL; } - if (n == 1) + /* Return if no other tiled window was found */ + if (&c->link == &clients) return; + /* If we passed sel, move c to the front; otherwise, move sel to the + * front */ + if (!sel) + sel = c; wl_list_remove(&sel->link); wl_list_insert(&clients, &sel->link); + focusclient(sel, NULL, 1); arrange(selmon); }