From: ARDiDo <90479315+ARDiDo@users.noreply.github.com> Date: Mon, 25 Oct 2021 01:31:05 +0000 (-0400) Subject: resistance: remove bool, add resistance.h + license X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=91a9f1dec9b6bf1700eb791ac4f4a1bcd6c62fc8;p=proto%2Flabwc.git resistance: remove bool, add resistance.h + license --- diff --git a/include/labwc.h b/include/labwc.h index bd45c16d..b2a4ff78 100644 --- a/include/labwc.h +++ b/include/labwc.h @@ -345,9 +345,6 @@ void view_child_finish(struct view_child *child); void subsurface_create(struct view *view, struct wlr_subsurface *wlr_subsurface); void view_set_activated(struct view *view, bool activated); -void resistance_move_apply(struct view *view, double *x, double *y, bool screen_edge); -void resistance_resize_apply(struct view *view, struct wlr_box *new_view_geo, - bool screen_edge); struct border view_border(struct view *view); void view_move_resize(struct view *view, struct wlr_box geo); void view_move(struct view *view, double x, double y); diff --git a/include/resistance.h b/include/resistance.h new file mode 100644 index 00000000..1d79ed3a --- /dev/null +++ b/include/resistance.h @@ -0,0 +1,8 @@ +#ifndef __RESISTANCE_H +#define __RESISTANCE_H +#include "labwc.h" + +void resistance_move_apply(struct view *view, double *x, double *y); +void resistance_resize_apply(struct view *view, struct wlr_box *new_view_geo); + +#endif /* __RESISTANCE_H */ diff --git a/src/cursor.c b/src/cursor.c index 11c7397d..63b0f2e7 100644 --- a/src/cursor.c +++ b/src/cursor.c @@ -5,6 +5,7 @@ #include #include "labwc.h" #include "menu/menu.h" +#include "resistance.h" #include "ssd.h" #include "config/mousebind.h" #include @@ -81,7 +82,7 @@ process_cursor_move(struct server *server, uint32_t time) /* Move the grabbed view to the new position. */ dx += server->grab_box.x; dy += server->grab_box.y; - resistance_move_apply(view, &dx, &dy, true); + resistance_move_apply(view, &dx, &dy); view_move(view, dx, dy); } @@ -125,7 +126,7 @@ process_cursor_resize(struct server *server, uint32_t time) new_view_geo.width = server->grab_box.width + dx; } - resistance_resize_apply(view, &new_view_geo, true); + resistance_resize_apply(view, &new_view_geo); view_move_resize(view, new_view_geo); } diff --git a/src/resistance.c b/src/resistance.c index 5d70c6d6..72bf7f0a 100644 --- a/src/resistance.c +++ b/src/resistance.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0-only #include "labwc.h" #include "config/rcxml.h" @@ -30,7 +31,7 @@ is_within_resistance_range(struct edges view, struct edges target, } void -resistance_move_apply(struct view *view, double *x, double *y, bool screen_edge) +resistance_move_apply(struct view *view, double *x, double *y) { struct server *server = view->server; struct wlr_box mgeom; @@ -51,45 +52,42 @@ resistance_move_apply(struct view *view, double *x, double *y, bool screen_edge) target_edges.right = *x + view->w + border.right + rc.gap; target_edges.bottom = *y + view->h + border.bottom + rc.gap; - if (screen_edge) { - if (!rc.screen_edge_strength) { - return; - } + if (!rc.screen_edge_strength) { + return; + } - wl_list_for_each(output, &server->outputs, link) { - mgeom = output_usable_area_in_layout_coords(output); - - other_edges.left = mgeom.x; - other_edges.top = mgeom.y; - other_edges.right = mgeom.x + mgeom.width; - other_edges.bottom = mgeom.y + mgeom.height; - - is_within_resistance_range(view_edges, target_edges, - other_edges, &flags, rc.screen_edge_strength); + wl_list_for_each(output, &server->outputs, link) { + mgeom = output_usable_area_in_layout_coords(output); - if (flags.left == 1) { - *x = other_edges.left + border.left + rc.gap; - } else if (flags.right == 1) { - *x = other_edges.right - view->w - border.right - - rc.gap; - } + other_edges.left = mgeom.x; + other_edges.top = mgeom.y; + other_edges.right = mgeom.x + mgeom.width; + other_edges.bottom = mgeom.y + mgeom.height; - if (flags.top == 1) { - *y = other_edges.top + border.top + rc.gap; - } else if (flags.bottom == 1) { - *y = other_edges.bottom - view->h - - border.bottom - rc.gap; - } + is_within_resistance_range(view_edges, target_edges, + other_edges, &flags, rc.screen_edge_strength); + + if (flags.left == 1) { + *x = other_edges.left + border.left + rc.gap; + } else if (flags.right == 1) { + *x = other_edges.right - view->w - border.right + - rc.gap; + } - /* reset the flags */ - flags.left = flags.top = flags.right = flags.bottom = 0; + if (flags.top == 1) { + *y = other_edges.top + border.top + rc.gap; + } else if (flags.bottom == 1) { + *y = other_edges.bottom - view->h - border.bottom + - rc.gap; } + + /* reset the flags */ + flags.left = flags.top = flags.right = flags.bottom = 0; } } void -resistance_resize_apply(struct view *view, struct wlr_box *new_view_geo, - bool screen_edge) +resistance_resize_apply(struct view *view, struct wlr_box *new_view_geo) { struct server *server = view->server; struct output *output; @@ -112,47 +110,45 @@ resistance_resize_apply(struct view *view, struct wlr_box *new_view_geo, target_edges.bottom = new_view_geo->y + new_view_geo->height + border.bottom + rc.gap; - if (screen_edge) { - if (!rc.screen_edge_strength) { - return; - } - wl_list_for_each(output, &server->outputs, link) { - mgeom = output_usable_area_in_layout_coords(output); - other_edges.left = mgeom.x; - other_edges.top = mgeom.y; - other_edges.right = mgeom.x + mgeom.width; - other_edges.bottom = mgeom.y + mgeom.height; - - is_within_resistance_range(view_edges, target_edges, - other_edges, &flags, rc.screen_edge_strength); - - if (server->resize_edges & WLR_EDGE_LEFT) { - if (flags.left == 1) { - new_view_geo->x = other_edges.left - + border.left + rc.gap; - new_view_geo->width = view->w; - } - } else if (server->resize_edges & WLR_EDGE_RIGHT) { - if (flags.right == 1) { - new_view_geo->width = other_edges.right - - view_edges.left - - (border.right + rc.gap) * 2 ; - } + if (!rc.screen_edge_strength) { + return; + } + wl_list_for_each(output, &server->outputs, link) { + mgeom = output_usable_area_in_layout_coords(output); + other_edges.left = mgeom.x; + other_edges.top = mgeom.y; + other_edges.right = mgeom.x + mgeom.width; + other_edges.bottom = mgeom.y + mgeom.height; + + is_within_resistance_range(view_edges, target_edges, + other_edges, &flags, rc.screen_edge_strength); + + if (server->resize_edges & WLR_EDGE_LEFT) { + if (flags.left == 1) { + new_view_geo->x = other_edges.left + + border.left + rc.gap; + new_view_geo->width = view->w; } + } else if (server->resize_edges & WLR_EDGE_RIGHT) { + if (flags.right == 1) { + new_view_geo->width = other_edges.right + - view_edges.left + - (border.right + rc.gap) * 2 ; + } + } - if (server->resize_edges & WLR_EDGE_TOP) { - if (flags.top == 1) { - new_view_geo->y = other_edges.top - + border.top + rc.gap; - new_view_geo->height = view->h; - } - } else if (server->resize_edges & WLR_EDGE_BOTTOM) { - if (flags.bottom == 1) { - new_view_geo->height = - other_edges.bottom - - view_edges.top - border.bottom - - border.top - rc.gap * 2; - } + if (server->resize_edges & WLR_EDGE_TOP) { + if (flags.top == 1) { + new_view_geo->y = other_edges.top + border.top + + rc.gap; + new_view_geo->height = view->h; + } + } else if (server->resize_edges & WLR_EDGE_BOTTOM) { + if (flags.bottom == 1) { + new_view_geo->height = + other_edges.bottom - view_edges.top + - border.bottom - border.top + - rc.gap * 2; } } }