From 1f469e1692ea05720afb32ebf038afa19bd27154 Mon Sep 17 00:00:00 2001 From: Ronan Pigott Date: Sun, 3 Nov 2019 19:18:05 -0700 Subject: [PATCH] focus: do nothing on focus prev|next for workspaces --- sway/commands/focus.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/sway/commands/focus.c b/sway/commands/focus.c index 844d12932..d745aab5c 100644 --- a/sway/commands/focus.c +++ b/sway/commands/focus.c @@ -16,7 +16,11 @@ static bool get_direction_from_next_prev(struct sway_container *container, struct sway_seat *seat, const char *name, enum wlr_direction *out) { - enum sway_container_layout parent_layout = container_parent_layout(container); + enum sway_container_layout parent_layout = L_NONE; + if (container) { + parent_layout = container_parent_layout(container); + } + if (strcasecmp(name, "prev") == 0) { switch (parent_layout) { case L_HORIZ: @@ -27,6 +31,8 @@ static bool get_direction_from_next_prev(struct sway_container *container, case L_STACKED: *out = WLR_DIRECTION_UP; break; + case L_NONE: + return true; default: return false; } @@ -40,6 +46,8 @@ static bool get_direction_from_next_prev(struct sway_container *container, case L_STACKED: *out = WLR_DIRECTION_DOWN; break; + case L_NONE: + return true; default: return false; } @@ -399,6 +407,10 @@ struct cmd_results *cmd_focus(int argc, char **argv) { } } + if (!direction) { + return cmd_results_new(CMD_SUCCESS, NULL); + } + if (node->type == N_WORKSPACE) { // Jump to the next output struct sway_output *new_output =