From 5cb26b80631e33675643ff0b4ccfc548c6cc202b Mon Sep 17 00:00:00 2001 From: project-repo Date: Fri, 24 Jul 2020 15:29:41 +0200 Subject: [PATCH] Improve view_unmap algorithmics --- view.c | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/view.c b/view.c index 167ed7e..e58dafe 100644 --- a/view.c +++ b/view.c @@ -276,15 +276,12 @@ view_unmap(struct cg_view *view) { struct cg_view *prev = view_get_prev_view(view); wlr_output_damage_add_box(view_tile->workspace->output->damage, &view_tile->tile); - if((view->workspace->server->seat->seat->keyboard_state - .focused_surface == NULL || - view->workspace->server->seat->seat->keyboard_state - .focused_surface == view->wlr_surface) && - view->workspace->server->curr_output - ->workspaces[view->workspace->server->curr_output - ->curr_workspace] - ->focused_tile == view_tile) { + if(view == view->workspace->server->seat->focused_view) { seat_set_focus(view->workspace->server->seat, prev); + } else if(view->workspace->server->seat->seat->keyboard_state + .focused_surface == view->wlr_surface) { + wlr_seat_keyboard_clear_focus(view->workspace->server->seat->seat); + seat_set_focus(view->workspace->server->seat, view->workspace->server->seat->focused_view); } else { view_tile->view = prev; if(prev != NULL) {