]> git.mdlowis.com Git - proto/labwc.git/commitdiff
Add interactive.c
authorJohan Malm <jgm323@gmail.com>
Fri, 29 May 2020 20:27:34 +0000 (21:27 +0100)
committerJohan Malm <jgm323@gmail.com>
Fri, 29 May 2020 20:27:34 +0000 (21:27 +0100)
include/labwc.h
src/interactive.c [new file with mode: 0644]
src/meson.build
src/server.c
src/xdg.c

index 5823dd45dd46207d9b54c105f7a4708d62450d83..a83826136b769ca772326fba7bc1aa117234a851 100644 (file)
@@ -161,8 +161,9 @@ struct view *view_at(struct server *server, double lx, double ly,
                     struct wlr_surface **surface, double *sx, double *sy,
                     int *view_area);
 
-void begin_interactive(struct view *view, enum cursor_mode mode,
+void interactive_begin(struct view *view, enum cursor_mode mode,
                       uint32_t edges);
+
 void server_new_input(struct wl_listener *listener, void *data);
 void seat_request_cursor(struct wl_listener *listener, void *data);
 void seat_request_set_selection(struct wl_listener *listener, void *data);
diff --git a/src/interactive.c b/src/interactive.c
new file mode 100644 (file)
index 0000000..7022ead
--- /dev/null
@@ -0,0 +1,20 @@
+#include "labwc.h"
+
+void interactive_begin(struct view *view, enum cursor_mode mode, uint32_t edges)
+{
+       /*
+        * This function sets up an interactive move or resize operation, where
+        * the compositor stops propegating pointer events to clients and
+        * instead consumes them itself, to move or resize windows.
+        */
+       struct server *server = view->server;
+       server->grabbed_view = view;
+       server->cursor_mode = mode;
+
+       /* Remember view and cursor positions at start of move/resize */
+       server->grab_x = server->cursor->x;
+       server->grab_y = server->cursor->y;
+       server->grab_box = view_geometry(view);
+       server->resize_edges = edges;
+}
+
index 36fc8a26c91a856a2eb48633d35e77c70b9a5c4a..1f1aa33a69d4c0b6add631038efa790af3bbcb5a 100644 (file)
@@ -1,11 +1,12 @@
 labwc_sources = files(
+  'deco.c',
+  'interactive.c',
   'main.c',
-  'server.c',
   'output.c',
+  'server.c',
   'view.c',
   'xdg.c',
   'xwl.c',
-  'deco.c',
 )
 
 subdir('debug')
index ae4706b2139e0e5017b563663ca81cef93c9c60a..69a2f490a54b5001c071ad04577858938bcd8d50 100644 (file)
@@ -3,24 +3,6 @@
 #define MIN_VIEW_WIDTH (100)
 #define MIN_VIEW_HEIGHT (60)
 
-void begin_interactive(struct view *view, enum cursor_mode mode, uint32_t edges)
-{
-       /*
-        * This function sets up an interactive move or resize operation, where
-        * the compositor stops propegating pointer events to clients and
-        * instead consumes them itself, to move or resize windows.
-        */
-       struct server *server = view->server;
-       server->grabbed_view = view;
-       server->cursor_mode = mode;
-
-       /* Remember view and cursor positions at start of move/resize */
-       server->grab_x = server->cursor->x;
-       server->grab_y = server->cursor->y;
-       server->grab_box = view_geometry(view);
-       server->resize_edges = edges;
-}
-
 static void keyboard_handle_modifiers(struct wl_listener *listener, void *data)
 {
        /*
@@ -65,7 +47,7 @@ static bool handle_keybinding(struct server *server, xkb_keysym_t sym)
                }
                break;
        case XKB_KEY_F6:
-               begin_interactive(view_front_toplevel(server),
+               interactive_begin(view_front_toplevel(server),
                                  TINYWL_CURSOR_MOVE, 0);
                break;
        case XKB_KEY_F12:
@@ -403,10 +385,10 @@ void server_cursor_button(struct wl_listener *listener, void *data)
                view_focus(view);
                switch (view_area) {
                case LAB_DECO_PART_TOP:
-                       begin_interactive(view, TINYWL_CURSOR_MOVE, 0);
+                       interactive_begin(view, TINYWL_CURSOR_MOVE, 0);
                        break;
                case LAB_DECO_PART_LEFT:
-                       begin_interactive(view, TINYWL_CURSOR_RESIZE,
+                       interactive_begin(view, TINYWL_CURSOR_RESIZE,
                                          WLR_EDGE_LEFT);
                        break;
                }
index 39310d4f4891ec9262bcaac2ade19ac4de2e9928..267a8e16132c1442ddee7cef679cdd604f69ccf7 100644 (file)
--- a/src/xdg.c
+++ b/src/xdg.c
@@ -81,7 +81,7 @@ void xdg_toplevel_request_move(struct wl_listener *listener, void *data)
         * client, to prevent the client from requesting this whenever they
         * want. */
        struct view *view = wl_container_of(listener, view, request_move);
-       begin_interactive(view, TINYWL_CURSOR_MOVE, 0);
+       interactive_begin(view, TINYWL_CURSOR_MOVE, 0);
 }
 
 void xdg_toplevel_request_resize(struct wl_listener *listener, void *data)
@@ -95,7 +95,7 @@ void xdg_toplevel_request_resize(struct wl_listener *listener, void *data)
         * want. */
        struct wlr_xdg_toplevel_resize_event *event = data;
        struct view *view = wl_container_of(listener, view, request_resize);
-       begin_interactive(view, TINYWL_CURSOR_RESIZE, event->edges);
+       interactive_begin(view, TINYWL_CURSOR_RESIZE, event->edges);
 }
 
 void xdg_surface_new(struct wl_listener *listener, void *data)