aboutsummaryrefslogtreecommitdiff
path: root/sway/tree/root.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/tree/root.c')
-rw-r--r--sway/tree/root.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/sway/tree/root.c b/sway/tree/root.c
index 9f6bf607..22c46aba 100644
--- a/sway/tree/root.c
+++ b/sway/tree/root.c
@@ -69,13 +69,16 @@ void root_scratchpad_add_container(struct sway_container *con) {
list_add(root->scratchpad, con);
struct sway_seat *seat = input_manager_current_seat();
+ struct sway_node *new_focus = NULL;
if (parent) {
arrange_container(parent);
- seat_set_focus(seat, seat_get_focus_inactive(seat, &parent->node));
- } else {
+ new_focus = seat_get_focus_inactive(seat, &parent->node);
+ }
+ if (!new_focus) {
arrange_workspace(workspace);
- seat_set_focus(seat, seat_get_focus_inactive(seat, &workspace->node));
+ new_focus = seat_get_focus_inactive(seat, &workspace->node);
}
+ seat_set_focus(seat, new_focus);
ipc_event_window(con, "move");
}