diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-03-12 13:57:40 -0400 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2019-03-12 19:14:04 +0100 |
commit | 3330faded5ed59b19b2a1982bb52c05322b03510 (patch) | |
tree | f6acaeb4793ff21534e84ea5b9b37bf87ddf7f91 /sway/commands | |
parent | config.in: allow launch apps with args via dmenu (diff) | |
download | sway-3330faded5ed59b19b2a1982bb52c05322b03510.tar.gz sway-3330faded5ed59b19b2a1982bb52c05322b03510.tar.zst sway-3330faded5ed59b19b2a1982bb52c05322b03510.zip |
Handle seat_get_focused_workspace returning NULL
This modifiers the callers of seat_get_focused_workspace to handle
getting NULL as the return value, if they did not already.
Diffstat (limited to 'sway/commands')
-rw-r--r-- | sway/commands/focus.c | 5 | ||||
-rw-r--r-- | sway/commands/scratchpad.c | 5 | ||||
-rw-r--r-- | sway/commands/workspace.c | 6 |
3 files changed, 14 insertions, 2 deletions
diff --git a/sway/commands/focus.c b/sway/commands/focus.c index 25df5130..6344a765 100644 --- a/sway/commands/focus.c +++ b/sway/commands/focus.c | |||
@@ -208,6 +208,11 @@ static struct cmd_results *focus_output(struct sway_seat *seat, | |||
208 | "There is no output with that name"); | 208 | "There is no output with that name"); |
209 | } | 209 | } |
210 | struct sway_workspace *ws = seat_get_focused_workspace(seat); | 210 | struct sway_workspace *ws = seat_get_focused_workspace(seat); |
211 | if (!ws) { | ||
212 | free(identifier); | ||
213 | return cmd_results_new(CMD_FAILURE, | ||
214 | "No focused workspace to base directions off of"); | ||
215 | } | ||
211 | output = output_get_in_direction(ws->output, direction); | 216 | output = output_get_in_direction(ws->output, direction); |
212 | 217 | ||
213 | if (!output) { | 218 | if (!output) { |
diff --git a/sway/commands/scratchpad.c b/sway/commands/scratchpad.c index 71afa306..34871bc6 100644 --- a/sway/commands/scratchpad.c +++ b/sway/commands/scratchpad.c | |||
@@ -12,6 +12,11 @@ static void scratchpad_toggle_auto(void) { | |||
12 | struct sway_seat *seat = input_manager_current_seat(); | 12 | struct sway_seat *seat = input_manager_current_seat(); |
13 | struct sway_container *focus = seat_get_focused_container(seat); | 13 | struct sway_container *focus = seat_get_focused_container(seat); |
14 | struct sway_workspace *ws = seat_get_focused_workspace(seat); | 14 | struct sway_workspace *ws = seat_get_focused_workspace(seat); |
15 | if (!ws) { | ||
16 | sway_log(SWAY_DEBUG, | ||
17 | "No focused workspace to toggle scratchpad windows on"); | ||
18 | return; | ||
19 | } | ||
15 | 20 | ||
16 | // If the focus is in a floating split container, | 21 | // If the focus is in a floating split container, |
17 | // operate on the split container instead of the child. | 22 | // operate on the split container instead of the child. |
diff --git a/sway/commands/workspace.c b/sway/commands/workspace.c index 362dcd1b..b911b2f6 100644 --- a/sway/commands/workspace.c +++ b/sway/commands/workspace.c | |||
@@ -185,8 +185,7 @@ struct cmd_results *cmd_workspace(int argc, char **argv) { | |||
185 | struct sway_seat *seat = config->handler_context.seat; | 185 | struct sway_seat *seat = config->handler_context.seat; |
186 | struct sway_workspace *current = seat_get_focused_workspace(seat); | 186 | struct sway_workspace *current = seat_get_focused_workspace(seat); |
187 | if (!current) { | 187 | if (!current) { |
188 | return cmd_results_new(CMD_FAILURE, "workspace", | 188 | return cmd_results_new(CMD_FAILURE, "No workspace to switch from"); |
189 | "No workspace to switch from"); | ||
190 | } | 189 | } |
191 | 190 | ||
192 | struct sway_workspace *ws = NULL; | 191 | struct sway_workspace *ws = NULL; |
@@ -227,6 +226,9 @@ struct cmd_results *cmd_workspace(int argc, char **argv) { | |||
227 | } | 226 | } |
228 | free(name); | 227 | free(name); |
229 | } | 228 | } |
229 | if (!ws) { | ||
230 | return cmd_results_new(CMD_FAILURE, "No workspace to switch to"); | ||
231 | } | ||
230 | workspace_switch(ws, no_auto_back_and_forth); | 232 | workspace_switch(ws, no_auto_back_and_forth); |
231 | seat_consider_warp_to_focus(seat); | 233 | seat_consider_warp_to_focus(seat); |
232 | } | 234 | } |