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);
--- /dev/null
+#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;
+}
+
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')
#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)
{
/*
}
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:
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;
}
* 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)
* 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)