diff options
-rw-r--r-- | sway/input/seat.c | 5 | ||||
-rw-r--r-- | sway/tree/view.c | 4 |
2 files changed, 6 insertions, 3 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c index 502ed5ac..92d9d7ec 100644 --- a/sway/input/seat.c +++ b/sway/input/seat.c | |||
@@ -618,7 +618,10 @@ void seat_set_focus_warp(struct sway_seat *seat, struct sway_node *node, | |||
618 | if (last_focus) { | 618 | if (last_focus) { |
619 | seat_send_unfocus(last_focus, seat); | 619 | seat_send_unfocus(last_focus, seat); |
620 | node_set_dirty(last_focus); | 620 | node_set_dirty(last_focus); |
621 | node_set_dirty(node_get_parent(last_focus)); | 621 | struct sway_node *parent = node_get_parent(last_focus); |
622 | if (parent) { | ||
623 | node_set_dirty(parent); | ||
624 | } | ||
622 | } | 625 | } |
623 | 626 | ||
624 | // Put the container parents on the focus stack, then the workspace, then | 627 | // Put the container parents on the focus stack, then the workspace, then |
diff --git a/sway/tree/view.c b/sway/tree/view.c index 1b8d5738..57851b16 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c | |||
@@ -560,11 +560,11 @@ void view_unmap(struct sway_view *view) { | |||
560 | container_begin_destroy(view->container); | 560 | container_begin_destroy(view->container); |
561 | if (parent) { | 561 | if (parent) { |
562 | container_reap_empty(parent); | 562 | container_reap_empty(parent); |
563 | } else { | 563 | } else if (ws) { |
564 | workspace_consider_destroy(ws); | 564 | workspace_consider_destroy(ws); |
565 | } | 565 | } |
566 | 566 | ||
567 | if (!ws->node.destroying) { | 567 | if (ws && !ws->node.destroying) { |
568 | arrange_workspace(ws); | 568 | arrange_workspace(ws); |
569 | workspace_detect_urgent(ws); | 569 | workspace_detect_urgent(ws); |
570 | } | 570 | } |