summaryrefslogtreecommitdiffstats
path: root/include/sway/input/seat.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway/input/seat.h')
-rw-r--r--include/sway/input/seat.h35
1 files changed, 19 insertions, 16 deletions
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index 5c404ecd..8a7e5450 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -13,9 +13,9 @@ struct sway_seat_device {
13 struct wl_list link; // sway_seat::devices 13 struct wl_list link; // sway_seat::devices
14}; 14};
15 15
16struct sway_seat_container { 16struct sway_seat_node {
17 struct sway_seat *seat; 17 struct sway_seat *seat;
18 struct sway_container *container; 18 struct sway_node *node;
19 19
20 struct wl_list link; // sway_seat::focus_stack 20 struct wl_list link; // sway_seat::focus_stack
21 21
@@ -76,7 +76,7 @@ struct sway_seat {
76 uint32_t last_button_serial; 76 uint32_t last_button_serial;
77 77
78 struct wl_listener focus_destroy; 78 struct wl_listener focus_destroy;
79 struct wl_listener new_container; 79 struct wl_listener new_node;
80 struct wl_listener new_drag_icon; 80 struct wl_listener new_drag_icon;
81 81
82 struct wl_list devices; // sway_seat_device::link 82 struct wl_list devices; // sway_seat_device::link
@@ -100,10 +100,10 @@ void seat_remove_device(struct sway_seat *seat,
100 100
101void seat_configure_xcursor(struct sway_seat *seat); 101void seat_configure_xcursor(struct sway_seat *seat);
102 102
103void seat_set_focus(struct sway_seat *seat, struct sway_container *container); 103void seat_set_focus(struct sway_seat *seat, struct sway_node *node);
104 104
105void seat_set_focus_warp(struct sway_seat *seat, 105void seat_set_focus_warp(struct sway_seat *seat,
106 struct sway_container *container, bool warp, bool notify); 106 struct sway_node *node, bool warp, bool notify);
107 107
108void seat_set_focus_surface(struct sway_seat *seat, 108void seat_set_focus_surface(struct sway_seat *seat,
109 struct wlr_surface *surface, bool unfocus); 109 struct wlr_surface *surface, bool unfocus);
@@ -114,7 +114,11 @@ void seat_set_focus_layer(struct sway_seat *seat,
114void seat_set_exclusive_client(struct sway_seat *seat, 114void seat_set_exclusive_client(struct sway_seat *seat,
115 struct wl_client *client); 115 struct wl_client *client);
116 116
117struct sway_container *seat_get_focus(struct sway_seat *seat); 117struct sway_node *seat_get_focus(struct sway_seat *seat);
118
119struct sway_workspace *seat_get_focused_workspace(struct sway_seat *seat);
120
121struct sway_container *seat_get_focused_container(struct sway_seat *seat);
118 122
119/** 123/**
120 * Return the last container to be focused for the seat (or the most recently 124 * Return the last container to be focused for the seat (or the most recently
@@ -125,32 +129,31 @@ struct sway_container *seat_get_focus(struct sway_seat *seat);
125 * is destroyed, or focus moves to a container with children and we need to 129 * is destroyed, or focus moves to a container with children and we need to
126 * descend into the next leaf in focus order. 130 * descend into the next leaf in focus order.
127 */ 131 */
128struct sway_container *seat_get_focus_inactive(struct sway_seat *seat, 132struct sway_node *seat_get_focus_inactive(struct sway_seat *seat,
129 struct sway_container *container); 133 struct sway_node *node);
130 134
131struct sway_container *seat_get_focus_inactive_tiling(struct sway_seat *seat, 135struct sway_container *seat_get_focus_inactive_tiling(struct sway_seat *seat,
132 struct sway_container *container); 136 struct sway_workspace *workspace);
133 137
134/** 138/**
135 * Descend into the focus stack to find the focus-inactive view. Useful for 139 * Descend into the focus stack to find the focus-inactive view. Useful for
136 * container placement when they change position in the tree. 140 * container placement when they change position in the tree.
137 */ 141 */
138struct sway_container *seat_get_focus_inactive_view(struct sway_seat *seat, 142struct sway_container *seat_get_focus_inactive_view(struct sway_seat *seat,
139 struct sway_container *container); 143 struct sway_node *ancestor);
140 144
141/** 145/**
142 * Return the immediate child of container which was most recently focused. 146 * Return the immediate child of container which was most recently focused.
143 */ 147 */
144struct sway_container *seat_get_active_child(struct sway_seat *seat, 148struct sway_node *seat_get_active_child(struct sway_seat *seat,
145 struct sway_container *container); 149 struct sway_node *parent);
146 150
147/** 151/**
148 * Iterate over the focus-inactive children of the container calling the 152 * Iterate over the focus-inactive children of the container calling the
149 * function on each. 153 * function on each.
150 */ 154 */
151void seat_focus_inactive_children_for_each(struct sway_seat *seat, 155void seat_for_each_node(struct sway_seat *seat,
152 struct sway_container *container, 156 void (*f)(struct sway_node *node, void *data), void *data);
153 void (*f)(struct sway_container *container, void *data), void *data);
154 157
155void seat_apply_config(struct sway_seat *seat, struct seat_config *seat_config); 158void seat_apply_config(struct sway_seat *seat, struct seat_config *seat_config);
156 159
@@ -173,7 +176,7 @@ void seat_begin_resize_tiling(struct sway_seat *seat,
173 struct sway_container *con, uint32_t button, enum wlr_edges edge); 176 struct sway_container *con, uint32_t button, enum wlr_edges edge);
174 177
175struct sway_container *seat_get_focus_inactive_floating(struct sway_seat *seat, 178struct sway_container *seat_get_focus_inactive_floating(struct sway_seat *seat,
176 struct sway_container *container); 179 struct sway_workspace *workspace);
177 180
178void seat_end_mouse_operation(struct sway_seat *seat); 181void seat_end_mouse_operation(struct sway_seat *seat);
179 182