diff options
author | Devin J. Pohly <djpohly@gmail.com> | 2020-04-23 23:52:27 -0500 |
---|---|---|
committer | Devin J. Pohly <djpohly@gmail.com> | 2020-04-23 23:52:27 -0500 |
commit | 6254bcd033d330268077ec5683c5bee4f29a720f (patch) | |
tree | 588e9387166f3927926c8844fe377a16472f67a7 | |
parent | 6e02b421cd6cc6c5715b72f906fcb604b5b52aa7 (diff) |
factor out scalebox()
May switch to the version from sway if that seems like a good idea at
some point.
-rw-r--r-- | dwl.c | 19 |
1 files changed, 15 insertions, 4 deletions
@@ -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) { |