From 6254bcd033d330268077ec5683c5bee4f29a720f Mon Sep 17 00:00:00 2001 From: "Devin J. Pohly" Date: Thu, 23 Apr 2020 23:52:27 -0500 Subject: factor out scalebox() May switch to the version from sway if that seems like a good idea at some point. --- dwl.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/dwl.c b/dwl.c index 12058c9..80a3d49 100644 --- a/dwl.c +++ b/dwl.c @@ -157,6 +157,7 @@ static void rendermon(struct wl_listener *listener, void *data); static void resize(Client *c, int x, int y, int w, int h); static void resizemouse(const Arg *arg); static void run(char *startup_cmd); +static void scalebox(struct wlr_box *box, float scale); static Client *selclient(void); static void sendmon(Client *c, Monitor *m); static void setcursor(struct wl_listener *listener, void *data); @@ -800,11 +801,12 @@ render(struct wlr_surface *surface, int sx, int sy, void *data) /* We also have to apply the scale factor for HiDPI outputs. This is only * part of the puzzle, dwl does not fully support HiDPI. */ struct wlr_box obox = { - .x = ox * output->scale, - .y = oy * output->scale, - .width = surface->current.width * output->scale, - .height = surface->current.height * output->scale, + .x = ox, + .y = oy, + .width = surface->current.width, + .height = surface->current.height, }; + scalebox(&obox, output->scale); /* * Those familiar with OpenGL are also familiar with the role of matrices @@ -993,6 +995,15 @@ run(char *startup_cmd) } } +void +scalebox(struct wlr_box *box, float scale) +{ + box->x *= scale; + box->y *= scale; + box->width *= scale; + box->height *= scale; +} + Client * selclient(void) { -- cgit v1.2.3