aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/sway/tree/container.h4
-rw-r--r--sway/commands/swap.c4
-rw-r--r--sway/input/seat.c2
-rw-r--r--sway/tree/container.c6
-rw-r--r--sway/tree/layout.c8
-rw-r--r--swaymsg/main.c21
6 files changed, 29 insertions, 16 deletions
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index a5f591ce..bb6c04a6 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -186,8 +186,8 @@ void container_for_each_descendant_dfs(struct sway_container *container,
/**
* Returns true if the given container is an ancestor of this container.
*/
-bool container_has_anscestor(struct sway_container *container,
- struct sway_container *anscestor);
+bool container_has_ancestor(struct sway_container *container,
+ struct sway_container *ancestor);
/**
* Returns true if the given container is a child descendant of this container.
diff --git a/sway/commands/swap.c b/sway/commands/swap.c
index e925ad33..e8dfc57f 100644
--- a/sway/commands/swap.c
+++ b/sway/commands/swap.c
@@ -60,8 +60,8 @@ struct cmd_results *cmd_swap(int argc, char **argv) {
} else if (current->type < C_CONTAINER || other->type < C_CONTAINER) {
error = cmd_results_new(CMD_FAILURE, "swap",
"Can only swap with containers and views");
- } else if (container_has_anscestor(current, other)
- || container_has_anscestor(other, current)) {
+ } else if (container_has_ancestor(current, other)
+ || container_has_ancestor(other, current)) {
error = cmd_results_new(CMD_FAILURE, "swap",
"Cannot swap ancestor and descendant");
} else if (current->layout == L_FLOATING || other->layout == L_FLOATING) {
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 6cfbe8d4..0295212c 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -542,7 +542,7 @@ void seat_set_focus_warp(struct sway_seat *seat,
return;
}
- // put all the anscestors of this container on top of the focus stack
+ // put all the ancestors of this container on top of the focus stack
struct sway_seat_container *parent =
seat_container_from_container(seat, container->parent);
while (parent) {
diff --git a/sway/tree/container.c b/sway/tree/container.c
index a4798c7e..59137d88 100644
--- a/sway/tree/container.c
+++ b/sway/tree/container.c
@@ -656,11 +656,11 @@ void container_for_each_descendant_bfs(struct sway_container *con,
}
}
-bool container_has_anscestor(struct sway_container *descendant,
- struct sway_container *anscestor) {
+bool container_has_ancestor(struct sway_container *descendant,
+ struct sway_container *ancestor) {
while (descendant->type != C_ROOT) {
descendant = descendant->parent;
- if (descendant == anscestor) {
+ if (descendant == ancestor) {
return true;
}
}
diff --git a/sway/tree/layout.c b/sway/tree/layout.c
index 624d5516..aca9e254 100644
--- a/sway/tree/layout.c
+++ b/sway/tree/layout.c
@@ -157,7 +157,7 @@ struct sway_container *container_remove_child(struct sway_container *child) {
void container_move_to(struct sway_container *container,
struct sway_container *destination) {
if (container == destination
- || container_has_anscestor(container, destination)) {
+ || container_has_ancestor(container, destination)) {
return;
}
struct sway_container *old_parent = container_remove_child(container);
@@ -945,9 +945,9 @@ void container_swap(struct sway_container *con1, struct sway_container *con2) {
"Can only swap containers and views")) {
return;
}
- if (!sway_assert(!container_has_anscestor(con1, con2)
- && !container_has_anscestor(con2, con1),
- "Cannot swap anscestor and descendant")) {
+ if (!sway_assert(!container_has_ancestor(con1, con2)
+ && !container_has_ancestor(con2, con1),
+ "Cannot swap ancestor and descendant")) {
return;
}
if (!sway_assert(con1->layout != L_FLOATING && con2->layout != L_FLOATING,
diff --git a/swaymsg/main.c b/swaymsg/main.c
index 89af7345..bf56b80d 100644
--- a/swaymsg/main.c
+++ b/swaymsg/main.c
@@ -19,13 +19,26 @@ void sway_terminate(int exit_code) {
exit(exit_code);
}
+// Iterate results array and return false if any of them failed
static bool success(json_object *r, bool fallback) {
- json_object *success;
- if (!json_object_object_get_ex(r, "success", &success)) {
+ if (!json_object_is_type(r, json_type_array)) {
return fallback;
- } else {
- return json_object_get_boolean(success);
}
+ size_t results_len = json_object_array_length(r);
+ if (!results_len) {
+ return fallback;
+ }
+ for (size_t i = 0; i < results_len; ++i) {
+ json_object *result = json_object_array_get_idx(r, i);
+ json_object *success;
+ if (!json_object_object_get_ex(result, "success", &success)) {
+ return false;
+ }
+ if (!json_object_get_boolean(success)) {
+ return false;
+ }
+ }
+ return true;
}
static void pretty_print_cmd(json_object *r) {