osd: optionally show windows on all workspaces

Also share common config option (rc.window_switcher.criteria) in osd.c and
desktop.c to make sure the window lists are always consistent.

Configure with `<windowSwitcher allWorkspaces="yes|no">`
This commit is contained in:
Johan Malm 2024-03-03 20:03:32 +00:00 committed by Consolatis
parent 41419d9479
commit 247d2b581c
6 changed files with 19 additions and 21 deletions

View file

@ -406,10 +406,7 @@ display_osd(struct output *output)
struct wl_array views;
wl_array_init(&views);
view_array_append(server, &views,
LAB_VIEW_CRITERIA_CURRENT_WORKSPACE
| LAB_VIEW_CRITERIA_ROOT_TOPLEVEL
| LAB_VIEW_CRITERIA_NO_SKIP_WINDOW_SWITCHER);
view_array_append(server, &views, rc.window_switcher.criteria);
float scale = output->wlr_output->scale;
int w = theme->osd_window_switcher_width;
@ -460,10 +457,7 @@ nr_entries(struct server *server)
{
struct wl_array views;
wl_array_init(&views);
view_array_append(server, &views,
LAB_VIEW_CRITERIA_CURRENT_WORKSPACE
| LAB_VIEW_CRITERIA_ROOT_TOPLEVEL
| LAB_VIEW_CRITERIA_NO_SKIP_WINDOW_SWITCHER);
view_array_append(server, &views, rc.window_switcher.criteria);
int count = wl_array_len(&views);
wl_array_release(&views);
return count;