aboutsummaryrefslogtreecommitdiffstats
path: root/include/sway/tree
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway/tree')
-rw-r--r--include/sway/tree/container.h11
-rw-r--r--include/sway/tree/view.h11
2 files changed, 13 insertions, 9 deletions
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index d4a42a71..12ff8a5a 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -230,18 +230,11 @@ struct sway_container *container_parent(struct sway_container *container,
230 * surface-local coordinates of the given layout coordinates if the container 230 * surface-local coordinates of the given layout coordinates if the container
231 * is a view and the view contains a surface at those coordinates. 231 * is a view and the view contains a surface at those coordinates.
232 */ 232 */
233struct sway_container *container_at(struct sway_container *container, 233struct sway_container *container_at(struct sway_container *workspace,
234 double ox, double oy, struct wlr_surface **surface, 234 double lx, double ly, struct wlr_surface **surface,
235 double *sx, double *sy); 235 double *sx, double *sy);
236 236
237/** 237/**
238 * Same as container_at, but only checks floating views and expects coordinates
239 * to be layout coordinates, as that's what floating views use.
240 */
241struct sway_container *floating_container_at(double lx, double ly,
242 struct wlr_surface **surface, double *sx, double *sy);
243
244/**
245 * Apply the function for each descendant of the container breadth first. 238 * Apply the function for each descendant of the container breadth first.
246 */ 239 */
247void container_for_each_descendant_bfs(struct sway_container *container, 240void container_for_each_descendant_bfs(struct sway_container *container,
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index 0152ed55..9f6d36fe 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -47,6 +47,8 @@ struct sway_view_impl {
47 bool (*has_client_side_decorations)(struct sway_view *view); 47 bool (*has_client_side_decorations)(struct sway_view *view);
48 void (*for_each_surface)(struct sway_view *view, 48 void (*for_each_surface)(struct sway_view *view,
49 wlr_surface_iterator_func_t iterator, void *user_data); 49 wlr_surface_iterator_func_t iterator, void *user_data);
50 void (*for_each_popup)(struct sway_view *view,
51 wlr_surface_iterator_func_t iterator, void *user_data);
50 void (*close)(struct sway_view *view); 52 void (*close)(struct sway_view *view);
51 void (*destroy)(struct sway_view *view); 53 void (*destroy)(struct sway_view *view);
52}; 54};
@@ -248,9 +250,18 @@ void view_close(struct sway_view *view);
248 250
249void view_damage_from(struct sway_view *view); 251void view_damage_from(struct sway_view *view);
250 252
253/**
254 * Iterate all surfaces of a view (toplevels + popups).
255 */
251void view_for_each_surface(struct sway_view *view, 256void view_for_each_surface(struct sway_view *view,
252 wlr_surface_iterator_func_t iterator, void *user_data); 257 wlr_surface_iterator_func_t iterator, void *user_data);
253 258
259/**
260 * Iterate all popups recursively.
261 */
262void view_for_each_popup(struct sway_view *view,
263 wlr_surface_iterator_func_t iterator, void *user_data);
264
254// view implementation 265// view implementation
255 266
256void view_init(struct sway_view *view, enum sway_view_type type, 267void view_init(struct sway_view *view, enum sway_view_type type,