desktop: use for_each_view() in desktop_topmost_focusable_view()

Fixes a regression in 83b619c2 that the bottom-most view is focused
when when an exclusive layer surface (e.g. fuzzel) is unfocused.

Also, added some comments to clarify the order.
This commit is contained in:
tokyo4j 2026-01-31 23:55:41 +09:00 committed by Consolatis
parent 67e3b36e58
commit 55a256f2fa
3 changed files with 4 additions and 3 deletions

View file

@ -188,6 +188,7 @@ struct server {
struct wlr_xdg_toplevel_icon_manager_v1 *xdg_toplevel_icon_manager;
struct wl_listener xdg_toplevel_icon_set_icon;
/* front to back order */
struct wl_list views;
uint64_t next_view_creation_id;
struct wl_list unmanaged_surfaces;

View file

@ -345,7 +345,7 @@ void view_query_free(struct view_query *view);
bool view_matches_query(struct view *view, struct view_query *query);
/**
* for_each_view() - iterate over all views which match criteria
* for_each_view() - iterate over all views which match criteria (front to back)
* @view: Iterator.
* @head: Head of list to iterate over.
* @criteria: Criteria to match against.
@ -361,7 +361,7 @@ bool view_matches_query(struct view *view, struct view_query *query);
view = view_next(head, view, criteria))
/**
* for_each_view_reverse() - iterate over all views which match criteria
* for_each_view_reverse() - iterate over all views which match criteria (back to front)
* @view: Iterator.
* @head: Head of list to iterate over.
* @criteria: Criteria to match against.