]> git.mdlowis.com Git - proto/labwc.git/commitdiff
HiDPI: fix move_to_edge and snap_to_edge
authorARDiDo <90479315+ARDiDo@users.noreply.github.com>
Wed, 24 Nov 2021 22:15:37 +0000 (17:15 -0500)
committerARDiDo <90479315+ARDiDo@users.noreply.github.com>
Wed, 24 Nov 2021 22:33:10 +0000 (17:33 -0500)
src/view.c

index 1654c5698e3afd1cef296af847d568284831d022..784259eacd07527cc0c8b1a039039b414242d2af 100644 (file)
@@ -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;