aboutsummaryrefslogtreecommitdiff
path: root/sway/input/seat.c
diff options
context:
space:
mode:
authorDominique Martinet <asmadeus@codewreck.org>2018-04-13 14:56:58 +0900
committerDominique Martinet <asmadeus@codewreck.org>2018-04-13 14:58:23 +0900
commit1fd21650d731ebed8ab8ebfc9e21526cdf162525 (patch)
treeb8004218300f01de3115409bee2e4a7dda53eb23 /sway/input/seat.c
parent200d0360ea3fb2c68a6b92ff3cf0249d54457b88 (diff)
seat_set_focus_wrap: fix use-after-free when destroying last focused container
Diffstat (limited to 'sway/input/seat.c')
-rw-r--r--sway/input/seat.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sway/input/seat.c b/sway/input/seat.c
index 467e5087..431460c4 100644
--- a/sway/input/seat.c
+++ b/sway/input/seat.c
@@ -491,6 +491,9 @@ void seat_set_focus_warp(struct sway_seat *seat,
ipc_event_workspace(last_ws, container, "focus");
if (!workspace_is_visible(last_ws)
&& last_ws->children->length == 0) {
+ if (last_ws == last_focus) {
+ last_focus = NULL;
+ }
container_destroy(last_ws);
}
}