diff --git a/sway/handlers.c b/sway/handlers.c index 0c0fb85f..70d044b6 100644 --- a/sway/handlers.c +++ b/sway/handlers.c @@ -39,8 +39,7 @@ void handle_view_destroyed(wlc_handle view) { } void handle_view_focus(wlc_handle view, bool focus) { - wlc_view_set_state(view, WLC_BIT_ACTIVATED, focus); - focus_view(get_swayc_for_handle(view, &root_container)); + return; } void handle_view_geometry_request(wlc_handle view, const struct wlc_geometry* geometry) { diff --git a/sway/layout.c b/sway/layout.c index 996be387..68d7cf7e 100644 --- a/sway/layout.c +++ b/sway/layout.c @@ -161,7 +161,7 @@ void add_view(wlc_handle view_handle) { view->type = C_VIEW; add_child(parent, view); - wlc_view_focus(view_handle); + focus_view(view); arrange_windows(parent, -1, -1); } @@ -187,6 +187,10 @@ void destroy_view(swayc_t *view) { free_swayc(view); + if (parent->focused == view) { + parent->focused = NULL; + } + if (parent->children->length != 0) { focus_view(parent->children->items[0]); } else {