summaryrefslogtreecommitdiffstats
path: root/include/sway/tree
diff options
context:
space:
mode:
authorLibravatar emersion <contact@emersion.fr>2018-08-02 08:11:10 +0100
committerLibravatar GitHub <noreply@github.com>2018-08-02 08:11:10 +0100
commit47bf4ed0cbf104d09bba7f39acbf2ceb84c2c694 (patch)
tree8f0085c1829ab97a920acd9d5116732779177631 /include/sway/tree
parentCorrectly track saved surfaces during multiple transactions (diff)
parentMerge pull request #2391 from RyanDwyer/fix-popups-v2 (diff)
downloadsway-47bf4ed0cbf104d09bba7f39acbf2ceb84c2c694.tar.gz
sway-47bf4ed0cbf104d09bba7f39acbf2ceb84c2c694.tar.zst
sway-47bf4ed0cbf104d09bba7f39acbf2ceb84c2c694.zip
Merge branch 'master' into fix-resize-wiggle
Diffstat (limited to 'include/sway/tree')
-rw-r--r--include/sway/tree/container.h11
-rw-r--r--include/sway/tree/view.h16
2 files changed, 18 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 0f9b0bb2..37fd02bc 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -47,7 +47,10 @@ 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);
53 void (*close_popups)(struct sway_view *view);
51 void (*destroy)(struct sway_view *view); 54 void (*destroy)(struct sway_view *view);
52}; 55};
53 56
@@ -249,11 +252,22 @@ void view_set_tiled(struct sway_view *view, bool tiled);
249 252
250void view_close(struct sway_view *view); 253void view_close(struct sway_view *view);
251 254
255void view_close_popups(struct sway_view *view);
256
252void view_damage_from(struct sway_view *view); 257void view_damage_from(struct sway_view *view);
253 258
259/**
260 * Iterate all surfaces of a view (toplevels + popups).
261 */
254void view_for_each_surface(struct sway_view *view, 262void view_for_each_surface(struct sway_view *view,
255 wlr_surface_iterator_func_t iterator, void *user_data); 263 wlr_surface_iterator_func_t iterator, void *user_data);
256 264
265/**
266 * Iterate all popups recursively.
267 */
268void view_for_each_popup(struct sway_view *view,
269 wlr_surface_iterator_func_t iterator, void *user_data);
270
257// view implementation 271// view implementation
258 272
259void view_init(struct sway_view *view, enum sway_view_type type, 273void view_init(struct sway_view *view, enum sway_view_type type,
@@ -314,6 +328,8 @@ void view_clear_marks(struct sway_view *view);
314 328
315bool view_has_mark(struct sway_view *view, char *mark); 329bool view_has_mark(struct sway_view *view, char *mark);
316 330
331void view_add_mark(struct sway_view *view, char *mark);
332
317void view_update_marks_textures(struct sway_view *view); 333void view_update_marks_textures(struct sway_view *view);
318 334
319/** 335/**