dwl

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

commit 62339e7ab0d33b8d4a2dc0468b757b2a43edb658
parent e41ed533842d5ed9688eb705ca48b82d0080dfe5
Author: Devin J. Pohly <djpohly@gmail.com>
Date:   Sun,  2 Aug 2020 00:35:26 -0500

make setmon a bit more straightforward

Diffstat:
Mdwl.c | 12++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/dwl.c b/dwl.c @@ -1427,27 +1427,27 @@ setmfact(const Arg *arg) void setmon(Client *c, Monitor *m, unsigned int newtags) { - int hadfocus; Monitor *oldmon = c->mon; - struct wlr_surface *surface = WLR_SURFACE(c); + Client *oldsel = selclient(); + if (oldmon == m) return; - hadfocus = (c == selclient()); c->mon = m; + /* XXX leave/enter is not optimal but works */ if (oldmon) { - wlr_surface_send_leave(surface, oldmon->wlr_output); + wlr_surface_send_leave(WLR_SURFACE(c), oldmon->wlr_output); arrange(oldmon); } if (m) { /* Make sure window actually overlaps with the monitor */ applybounds(c, &m->m); - wlr_surface_send_enter(surface, m->wlr_output); + wlr_surface_send_enter(WLR_SURFACE(c), m->wlr_output); c->tags = newtags ? newtags : m->tagset[m->seltags]; /* assign tags of target monitor */ arrange(m); } /* Focus can change if c is the top of selmon before or after */ - if (hadfocus || c == selclient()) + if (c == oldsel || c == selclient()) focusclient(lastfocused(), NULL, 1); }