aboutsummaryrefslogtreecommitdiff
path: root/include/sway/input
diff options
context:
space:
mode:
authorAlexander Orzechowski <alex@ozal.ski>2023-11-21 19:55:47 -0500
committerKirill Primak <vyivel@eclair.cafe>2024-01-18 18:36:54 +0300
commitc640c3015f3a7ea2987bd7854d13ff282f90804f (patch)
treed292934709dcd71bdb244546b1684e690e0511f4 /include/sway/input
parent9c17cba0b29979ae23c4521b884f7419fd558770 (diff)
scene_graph: Port seat drag icons
Diffstat (limited to 'include/sway/input')
-rw-r--r--include/sway/input/seat.h26
1 files changed, 11 insertions, 15 deletions
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index 28a3ea37..3c81a713 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -3,6 +3,7 @@
#include <wlr/types/wlr_keyboard_shortcuts_inhibit_v1.h>
#include <wlr/types/wlr_layer_shell_v1.h>
+#include <wlr/types/wlr_scene.h>
#include <wlr/types/wlr_seat.h>
#include <wlr/types/wlr_touch.h>
#include <wlr/util/edges.h>
@@ -75,20 +76,6 @@ struct sway_seat_node {
struct wl_listener destroy;
};
-struct sway_drag_icon {
- struct sway_seat *seat;
- struct wlr_drag_icon *wlr_drag_icon;
- struct wl_list link; // sway_root::drag_icons
-
- double x, y; // in layout-local coordinates
- int dx, dy; // offset in surface-local coordinates
-
- struct wl_listener surface_commit;
- struct wl_listener map;
- struct wl_listener unmap;
- struct wl_listener destroy;
-};
-
struct sway_drag {
struct sway_seat *seat;
struct wlr_drag *wlr_drag;
@@ -99,6 +86,15 @@ struct sway_seat {
struct wlr_seat *wlr_seat;
struct sway_cursor *cursor;
+ // Seat scene tree structure
+ // - scene_tree
+ // - drag icons
+ // - drag icon 1
+ // - drag icon 2
+ // - seatop specific stuff
+ struct wlr_scene_tree *scene_tree;
+ struct wlr_scene_tree *drag_icons;
+
bool has_focus;
struct wl_list focus_stack; // list of containers in focus order
struct sway_workspace *workspace;
@@ -257,7 +253,7 @@ void seat_idle_notify_activity(struct sway_seat *seat,
bool seat_is_input_allowed(struct sway_seat *seat, struct wlr_surface *surface);
-void drag_icon_update_position(struct sway_drag_icon *icon);
+void drag_icons_update_position(struct sway_seat *seat);
enum wlr_edges find_resize_edge(struct sway_container *cont,
struct wlr_surface *surface, struct sway_cursor *cursor);