From 6f2f79b8d73ba7ce2f6b4df703b60440123e7d3b Mon Sep 17 00:00:00 2001 From: ARDiDo <90479315+ARDiDo@users.noreply.github.com> Date: Wed, 24 Nov 2021 17:15:37 -0500 Subject: [PATCH] HiDPI: fix move_to_edge and snap_to_edge --- src/view.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/view.c b/src/view.c index 1654c569..784259ea 100644 --- a/src/view.c +++ b/src/view.c @@ -333,6 +333,12 @@ view_move_to_edge(struct view *view, const char *direction) } struct border border = view_border(view); struct wlr_box usable = output_usable_area_in_layout_coords(output); + if (usable.height == output->wlr_output->height && output->wlr_output->scale != 1) { + usable.height /= output->wlr_output->scale; + } + if (usable.width == output->wlr_output->width && output->wlr_output->scale != 1) { + usable.width /= output->wlr_output->scale; + } int x = 0, y = 0; if (!strcasecmp(direction, "left")) { @@ -399,6 +405,12 @@ view_get_edge_snap_box(struct view *view, struct output *output, enum view_edge { struct border border = view_border(view); struct wlr_box usable = output_usable_area_in_layout_coords(output); + if (usable.height == output->wlr_output->height && output->wlr_output->scale != 1) { + usable.height /= output->wlr_output->scale; + } + if (usable.width == output->wlr_output->width && output->wlr_output->scale != 1) { + usable.width /= output->wlr_output->scale; + } int x_offset = edge == VIEW_EDGE_RIGHT ? (usable.width + rc.gap) / 2 : rc.gap;