From bab080cea3d28dad387760d93db55cc711980d9a Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sun, 9 Aug 2015 12:06:46 -0400 Subject: [PATCH] Fix up some issues with focus --- sway/handlers.c | 3 +-- sway/layout.c | 6 +++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/sway/handlers.c b/sway/handlers.c index 0c0fb85fb..70d044b6f 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 996be387b..68d7cf7ed 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 {