aboutsummaryrefslogtreecommitdiff
path: root/sway/commands
diff options
context:
space:
mode:
authorRyan Dwyer <ryandwyer1@gmail.com>2019-01-28 19:06:42 +1000
committeremersion <contact@emersion.fr>2019-01-28 10:35:40 +0100
commit6b8bf10941ec83ac7a6e364b9c34f8c6f74d814a (patch)
tree61a9e61c64fd1b88a79b06a6f9dafeb84e4f8c35 /sway/commands
parent68a28e482fd4a813721e45ea860b80ada0e226b4 (diff)
Introduce container_is_scratchpad_hidden
Just a convenience function that improves readability of the code. Other things worth noting: * container_get_siblings and container_sibling_index no longer use the const keyword * container_handle_fullscreen_reparent is only ever called after attaching the container to a workspace, so its con->workspace check has been changed to an assertion
Diffstat (limited to 'sway/commands')
-rw-r--r--sway/commands/focus.c2
-rw-r--r--sway/commands/move.c4
-rw-r--r--sway/commands/resize.c10
-rw-r--r--sway/commands/split.c2
-rw-r--r--sway/commands/sticky.c6
5 files changed, 13 insertions, 11 deletions
diff --git a/sway/commands/focus.c b/sway/commands/focus.c
index 87fe6cf3..79b2f551 100644
--- a/sway/commands/focus.c
+++ b/sway/commands/focus.c
@@ -271,7 +271,7 @@ struct cmd_results *cmd_focus(int argc, char **argv) {
}
if (argc == 0 && container) {
- if (container->scratchpad && !container->workspace) {
+ if (container_is_scratchpad_hidden(container)) {
root_scratchpad_show(container);
}
seat_set_focus_container(seat, container);
diff --git a/sway/commands/move.c b/sway/commands/move.c
index aa06b168..8c3afae9 100644
--- a/sway/commands/move.c
+++ b/sway/commands/move.c
@@ -659,7 +659,7 @@ static struct cmd_results *cmd_move_in_direction(
return cmd_results_new(CMD_FAILURE,
"Cannot move workspaces in a direction");
}
- if (container->scratchpad && !container->workspace) {
+ if (container_is_scratchpad_hidden(container)) {
return cmd_results_new(CMD_FAILURE,
"Cannot move a hidden scratchpad container");
}
@@ -734,7 +734,7 @@ static struct cmd_results *cmd_move_to_position(int argc, char **argv) {
return cmd_results_new(CMD_FAILURE, "Only floating containers "
"can be moved to an absolute position");
}
- if (container->scratchpad && !container->workspace) {
+ if (container_is_scratchpad_hidden(container)) {
return cmd_results_new(CMD_FAILURE,
"Cannot move a hidden scratchpad container");
}
diff --git a/sway/commands/resize.c b/sway/commands/resize.c
index 204de539..c9261535 100644
--- a/sway/commands/resize.c
+++ b/sway/commands/resize.c
@@ -86,7 +86,8 @@ static void calculate_constraints(int *min_width, int *max_width,
*min_height = config->floating_minimum_height;
}
- if (config->floating_maximum_width == -1 || !con->workspace) { // no max
+ if (config->floating_maximum_width == -1 ||
+ container_is_scratchpad_hidden(con)) { // no max
*max_width = INT_MAX;
} else if (config->floating_maximum_width == 0) { // automatic
*max_width = con->workspace->width;
@@ -94,7 +95,8 @@ static void calculate_constraints(int *min_width, int *max_width,
*max_width = config->floating_maximum_width;
}
- if (config->floating_maximum_height == -1 || !con->workspace) { // no max
+ if (config->floating_maximum_height == -1 ||
+ container_is_scratchpad_hidden(con)) { // no max
*max_height = INT_MAX;
} else if (config->floating_maximum_height == 0) { // automatic
*max_height = con->workspace->height;
@@ -386,7 +388,7 @@ static struct cmd_results *resize_set_floating(struct sway_container *con,
if (width->amount) {
switch (width->unit) {
case RESIZE_UNIT_PPT:
- if (con->scratchpad && !con->workspace) {
+ if (container_is_scratchpad_hidden(con)) {
return cmd_results_new(CMD_FAILURE,
"Cannot resize a hidden scratchpad container by ppt");
}
@@ -410,7 +412,7 @@ static struct cmd_results *resize_set_floating(struct sway_container *con,
if (height->amount) {
switch (height->unit) {
case RESIZE_UNIT_PPT:
- if (con->scratchpad && !con->workspace) {
+ if (container_is_scratchpad_hidden(con)) {
return cmd_results_new(CMD_FAILURE,
"Cannot resize a hidden scratchpad container by ppt");
}
diff --git a/sway/commands/split.c b/sway/commands/split.c
index b7ab7b79..e9670722 100644
--- a/sway/commands/split.c
+++ b/sway/commands/split.c
@@ -13,7 +13,7 @@ static struct cmd_results *do_split(int layout) {
struct sway_container *con = config->handler_context.container;
struct sway_workspace *ws = config->handler_context.workspace;
if (con) {
- if (con->scratchpad && !con->workspace) {
+ if (container_is_scratchpad_hidden(con)) {
return cmd_results_new(CMD_FAILURE,
"Cannot split a hidden scratchpad container");
}
diff --git a/sway/commands/sticky.c b/sway/commands/sticky.c
index e79af8af..5b70199c 100644
--- a/sway/commands/sticky.c
+++ b/sway/commands/sticky.c
@@ -17,15 +17,15 @@ struct cmd_results *cmd_sticky(int argc, char **argv) {
return error;
}
struct sway_container *container = config->handler_context.container;
-
+
if (container == NULL) {
return cmd_results_new(CMD_FAILURE, "No current container");
};
-
+
container->is_sticky = parse_boolean(argv[0], container->is_sticky);
if (container->is_sticky && container_is_floating_or_child(container) &&
- (!container->scratchpad || container->workspace)) {
+ !container_is_scratchpad_hidden(container)) {
// move container to active workspace
struct sway_workspace *active_workspace =
output_get_active_workspace(container->workspace->output);