aboutsummaryrefslogtreecommitdiff
path: root/include/sway/tree
diff options
context:
space:
mode:
authoremersion <contact@emersion.fr>2018-08-02 08:11:10 +0100
committerGitHub <noreply@github.com>2018-08-02 08:11:10 +0100
commit47bf4ed0cbf104d09bba7f39acbf2ceb84c2c694 (patch)
tree8f0085c1829ab97a920acd9d5116732779177631 /include/sway/tree
parentd10ccc1eb144e4de2477398f6b11753f6b7df70b (diff)
parent9564c73c0ddca9d7b45f0476fcaee8bd878d8345 (diff)
downloadsway-47bf4ed0cbf104d09bba7f39acbf2ceb84c2c694.tar.xz
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,
* surface-local coordinates of the given layout coordinates if the container
* is a view and the view contains a surface at those coordinates.
*/
-struct sway_container *container_at(struct sway_container *container,
- double ox, double oy, struct wlr_surface **surface,
+struct sway_container *container_at(struct sway_container *workspace,
+ double lx, double ly, struct wlr_surface **surface,
double *sx, double *sy);
/**
- * Same as container_at, but only checks floating views and expects coordinates
- * to be layout coordinates, as that's what floating views use.
- */
-struct sway_container *floating_container_at(double lx, double ly,
- struct wlr_surface **surface, double *sx, double *sy);
-
-/**
* Apply the function for each descendant of the container breadth first.
*/
void 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 {
bool (*has_client_side_decorations)(struct sway_view *view);
void (*for_each_surface)(struct sway_view *view,
wlr_surface_iterator_func_t iterator, void *user_data);
+ void (*for_each_popup)(struct sway_view *view,
+ wlr_surface_iterator_func_t iterator, void *user_data);
void (*close)(struct sway_view *view);
+ void (*close_popups)(struct sway_view *view);
void (*destroy)(struct sway_view *view);
};
@@ -249,11 +252,22 @@ void view_set_tiled(struct sway_view *view, bool tiled);
void view_close(struct sway_view *view);
+void view_close_popups(struct sway_view *view);
+
void view_damage_from(struct sway_view *view);
+/**
+ * Iterate all surfaces of a view (toplevels + popups).
+ */
void view_for_each_surface(struct sway_view *view,
wlr_surface_iterator_func_t iterator, void *user_data);
+/**
+ * Iterate all popups recursively.
+ */
+void view_for_each_popup(struct sway_view *view,
+ wlr_surface_iterator_func_t iterator, void *user_data);
+
// view implementation
void view_init(struct sway_view *view, enum sway_view_type type,
@@ -314,6 +328,8 @@ void view_clear_marks(struct sway_view *view);
bool view_has_mark(struct sway_view *view, char *mark);
+void view_add_mark(struct sway_view *view, char *mark);
+
void view_update_marks_textures(struct sway_view *view);
/**