From 288f6397faea0285cf4eba9fc84459c60c2ed690 Mon Sep 17 00:00:00 2001
From: "Devin J. Pohly" <djpohly@gmail.com>
Date: Thu, 23 Apr 2020 22:26:43 -0500
Subject: [PATCH] simplify move/resizemouse functions

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

diff --git a/dwl.c b/dwl.c
index cc41d3a..69c124d 100644
--- 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