diff --git a/src/desktop.c b/src/desktop.c index d261e7f7..f5384f8d 100644 --- a/src/desktop.c +++ b/src/desktop.c @@ -179,7 +179,10 @@ first_view(struct server *server) struct wl_list *list_head = &server->workspace_current->tree->children; wl_list_for_each_reverse(node, list_head, link) { - return node_view_from_node(node); + struct view *view = node_view_from_node(node); + if (isfocusable(view)) { + return view; + } } return NULL; } diff --git a/src/osd.c b/src/osd.c index 26b946cb..f24bbcfd 100644 --- a/src/osd.c +++ b/src/osd.c @@ -226,7 +226,7 @@ osd_update(struct server *server) struct wl_list *node_list = &server->workspace_current->tree->children; - if (wl_list_empty(node_list)) { + if (wl_list_empty(node_list) || !server->osd_state.cycle_view) { osd_finish(server); return; }