factor out scalebox()

May switch to the version from sway if that seems like a good idea at
some point.
main
Devin J. Pohly 2020-04-23 23:52:27 -05:00
parent 6e02b421cd
commit 6254bcd033
1 changed files with 15 additions and 4 deletions

19
dwl.c
View File

@ -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 resize(Client *c, int x, int y, int w, int h);
static void resizemouse(const Arg *arg); static void resizemouse(const Arg *arg);
static void run(char *startup_cmd); static void run(char *startup_cmd);
static void scalebox(struct wlr_box *box, float scale);
static Client *selclient(void); static Client *selclient(void);
static void sendmon(Client *c, Monitor *m); static void sendmon(Client *c, Monitor *m);
static void setcursor(struct wl_listener *listener, void *data); 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 /* We also have to apply the scale factor for HiDPI outputs. This is only
* part of the puzzle, dwl does not fully support HiDPI. */ * part of the puzzle, dwl does not fully support HiDPI. */
struct wlr_box obox = { struct wlr_box obox = {
.x = ox * output->scale, .x = ox,
.y = oy * output->scale, .y = oy,
.width = surface->current.width * output->scale, .width = surface->current.width,
.height = surface->current.height * output->scale, .height = surface->current.height,
}; };
scalebox(&obox, output->scale);
/* /*
* Those familiar with OpenGL are also familiar with the role of matrices * 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 * Client *
selclient(void) selclient(void)
{ {