]> git.mdlowis.com Git - proto/labwc.git/commitdiff
resistance: remove bool, add resistance.h + license
authorARDiDo <90479315+ARDiDo@users.noreply.github.com>
Mon, 25 Oct 2021 01:31:05 +0000 (21:31 -0400)
committerJohan Malm <johanmalm@users.noreply.github.com>
Tue, 26 Oct 2021 20:15:13 +0000 (21:15 +0100)
include/labwc.h
include/resistance.h [new file with mode: 0644]
src/cursor.c
src/resistance.c

index bd45c16d5296247c4276752c68c6298451000998..b2a4ff7897c9f4a38374b7ad39da4cf5c8f7316f 100644 (file)
@@ -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 (file)
index 0000000..1d79ed3
--- /dev/null
@@ -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 */
index 11c7397d8e0ac87c19efdd6e23aee72209044cd9..63b0f2e742ea8c3b7301af95f7e4cace868f8958 100644 (file)
@@ -5,6 +5,7 @@
 #include <time.h>
 #include "labwc.h"
 #include "menu/menu.h"
+#include "resistance.h"
 #include "ssd.h"
 #include "config/mousebind.h"
 #include <wlr/types/wlr_primary_selection.h>
@@ -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);
 }
 
index 5d70c6d68ce11f1ee6cb52c07074ae3c97c3423e..72bf7f0a619192a68c4c70ba26951bcb0b765984 100644 (file)
@@ -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;
                        }
                }
        }