dwl

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

commit 288f6397faea0285cf4eba9fc84459c60c2ed690
parent 073c35ae2f96bb6a48e628e49897cb392e63094a
Author: Devin J. Pohly <djpohly@gmail.com>
Date:   Thu, 23 Apr 2020 22:26:43 -0500

simplify move/resizemouse functions

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

diff --git a/dwl.c b/dwl.c @@ -710,20 +710,15 @@ motionrelative(struct wl_listener *listener, void *data) void movemouse(const Arg *arg) { - double sx, sy; struct wlr_surface *surface; - Client *c = xytoclient(cursor->x, cursor->y, &surface, &sx, &sy); - if (!c) + grabc = xytoclient(cursor->x, cursor->y, &surface, &grabsx, &grabsy); + if (!grabc) return; - /* Prepare for moving client in motionnotify */ - grabc = c; - cursor_mode = CurMove; - grabsx = cursor->x - c->x; - grabsy = cursor->y - c->y; - /* Float the window */ + /* Float the window and tell motionnotify to grab it */ if (!grabc->isfloating && selmon->lt[selmon->sellt]->arrange) grabc->isfloating = 1; + cursor_mode = CurMove; } void @@ -893,26 +888,23 @@ resize(Client *c, int x, int y, int w, int h) void resizemouse(const Arg *arg) { - double sx, sy; struct wlr_surface *surface; - Client *c = xytoclient(cursor->x, cursor->y, &surface, &sx, &sy); - if (!c) + grabc = xytoclient(cursor->x, cursor->y, &surface, &grabsx, &grabsy); + if (!grabc) return; struct wlr_box sbox; - wlr_xdg_surface_get_geometry(c->xdg_surface, &sbox); + wlr_xdg_surface_get_geometry(grabc->xdg_surface, &sbox); /* Doesn't work for X11 output - the next absolute motion event * returns the cursor to where it started */ wlr_cursor_warp_closest(cursor, NULL, - c->x + sbox.x + sbox.width, - c->y + sbox.y + sbox.height); + grabc->x + sbox.x + sbox.width, + grabc->y + sbox.y + sbox.height); - /* Prepare for resizing client in motionnotify */ - grabc = c; - cursor_mode = CurResize; - /* Float the window */ + /* Float the window and tell motionnotify to resize it */ if (!grabc->isfloating && selmon->lt[selmon->sellt]->arrange) grabc->isfloating = 1; + cursor_mode = CurResize; } void