Handle NULL from output_get_active_workspace

This modifies the places where output_get_active_workspace is called to
handle a NULL result. Some places already handled it and did not need a
change, some just have guard off code blocks, others return errors, and
some have sway_asserts since the case should never happen. A lot of this
is probably just safety precautions since they probably will never be
called when `output_get_active_workspace` is not fully configured with a
workspace.
This commit is contained in:
Brian Ashworth 2019-02-21 13:24:13 -05:00 committed by emersion
parent 79c133182d
commit d3d7956576
10 changed files with 50 additions and 3 deletions

View file

@ -143,6 +143,9 @@ void output_enable(struct sway_output *output, struct output_config *oc) {
static void evacuate_sticky(struct sway_workspace *old_ws,
struct sway_output *new_output) {
struct sway_workspace *new_ws = output_get_active_workspace(new_output);
if (!sway_assert(new_ws, "New output does not have a workspace")) {
return;
}
while (old_ws->floating->length) {
struct sway_container *sticky = old_ws->floating->items[0];
container_detach(sticky);