aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/sway/desktop/transaction.h6
-rw-r--r--include/sway/output.h2
-rw-r--r--include/sway/tree/container.h2
-rw-r--r--include/sway/tree/node.h1
-rw-r--r--include/sway/tree/view.h4
-rw-r--r--include/sway/tree/workspace.h4
6 files changed, 12 insertions, 7 deletions
diff --git a/include/sway/desktop/transaction.h b/include/sway/desktop/transaction.h
index 80af4aae..dd7edb7a 100644
--- a/include/sway/desktop/transaction.h
+++ b/include/sway/desktop/transaction.h
@@ -23,7 +23,6 @@
struct sway_transaction_instruction;
struct sway_view;
-struct sway_node;
/**
* Find all dirty containers, create and commit a transaction containing them,
@@ -31,11 +30,6 @@ struct sway_node;
*/
void transaction_commit_dirty(void);
-/**
- * Remove a node that will be destroyed from transactions and dirty node lists.
- */
-void transaction_remove_node(struct sway_node *node);
-
/*
* Same as transaction_commit_dirty, but signalling that this is a
* client-initiated change has already taken effect.
diff --git a/include/sway/output.h b/include/sway/output.h
index 43c3dc9a..f6354e0e 100644
--- a/include/sway/output.h
+++ b/include/sway/output.h
@@ -84,6 +84,8 @@ struct sway_output *output_create(struct wlr_output *wlr_output);
void output_destroy(struct sway_output *output);
+void output_begin_destroy(struct sway_output *output);
+
struct sway_output *output_from_wlr_output(struct wlr_output *output);
struct sway_output *output_get_in_direction(struct sway_output *reference,
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index 4b284104..e18fd00a 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -155,6 +155,8 @@ struct sway_container *container_create(struct sway_view *view);
void container_destroy(struct sway_container *con);
+void container_begin_destroy(struct sway_container *con);
+
/**
* Search a container's descendants a container based on test criteria. Returns
* the first container that passes the test.
diff --git a/include/sway/tree/node.h b/include/sway/tree/node.h
index 7b6e936c..e2dbcdf0 100644
--- a/include/sway/tree/node.h
+++ b/include/sway/tree/node.h
@@ -39,6 +39,7 @@ struct sway_node {
struct sway_transaction_instruction *instruction;
size_t ntxnrefs;
+ bool destroying;
// If true, indicates that the container has pending state that differs from
// the current.
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index d999b502..6151a023 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -101,6 +101,8 @@ struct sway_view {
struct wl_listener foreign_close_request;
struct wl_listener foreign_destroy;
+ bool destroying;
+
list_t *executed_criteria; // struct criteria *
union {
@@ -294,6 +296,8 @@ bool view_init(struct sway_view *view, enum sway_view_type type,
void view_destroy(struct sway_view *view);
+void view_begin_destroy(struct sway_view *view);
+
/**
* Map a view, ie. make it visible in the tree.
*
diff --git a/include/sway/tree/workspace.h b/include/sway/tree/workspace.h
index 77991b27..27ed649f 100644
--- a/include/sway/tree/workspace.h
+++ b/include/sway/tree/workspace.h
@@ -62,7 +62,9 @@ struct sway_workspace *workspace_create(struct sway_output *output,
void workspace_destroy(struct sway_workspace *workspace);
-bool workspace_consider_destroy(struct sway_workspace *ws);
+void workspace_begin_destroy(struct sway_workspace *workspace);
+
+void workspace_consider_destroy(struct sway_workspace *ws);
char *workspace_next_name(const char *output_name);