From 4915214e47d8f9233bfe4446a223300908455865 Mon Sep 17 00:00:00 2001
From: Bonicgamer <44382222+Bonicgamer@users.noreply.github.com>
Date: Tue, 8 Sep 2020 14:53:34 -0400
Subject: Made scalebox the way sway does it

---
 dwl.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/dwl.c b/dwl.c
index 730e46a..d54c702 100644
--- a/dwl.c
+++ b/dwl.c
@@ -50,6 +50,7 @@
 #define LENGTH(X)               (sizeof X / sizeof X[0])
 #define END(A)                  ((A) + LENGTH(A))
 #define TAGMASK                 ((1 << LENGTH(tags)) - 1)
+#define ROUND(X)                ((X)>=0?(long)((X)+0.5):(long)((X)-0.5))
 #ifdef XWAYLAND
 #define WLR_SURFACE(C)          ((C)->type != XDGShell ? (C)->surface.xwayland->surface : (C)->surface.xdg->surface)
 #else
@@ -1344,10 +1345,10 @@ run(char *startup_cmd)
 void
 scalebox(struct wlr_box *box, float scale)
 {
-	box->x *= scale;
-	box->y *= scale;
-	box->width *= scale;
-	box->height *= scale;
+	box->width =  ROUND((box->x + box->width) * scale) -  ROUND(box->x * scale);
+	box->height = ROUND((box->y + box->height) * scale) - ROUND(box->y * scale);
+	box->x = ROUND(box->x * scale);
+	box->y = ROUND(box->y * scale);
 }
 
 Client *
-- 
cgit v1.2.3