Window switch, make pertinent changes to all workspace option

This commit is contained in:
DonO 2024-03-11 18:18:52 -05:00
parent 7513d6abc0
commit 9b9855cb53
3 changed files with 14 additions and 8 deletions

View file

@ -206,7 +206,8 @@ this is for compatibility with Openbox.
*content* defines what the field shows and can be any of: *content* defines what the field shows and can be any of:
- *type* Show view type ("W" for xdg-shell or "X" for xwayland) - *type* Show view type ("xdg-shell" or "xwayland")
- *type* Show view type all workspaces ("W" or "X")
- *identifier* Show identifier (app_id for native Wayland - *identifier* Show identifier (app_id for native Wayland
windows and WM_CLASS for XWayland clients) windows and WM_CLASS for XWayland clients)

View file

@ -896,12 +896,9 @@ entry(xmlNode *node, char *nodename, char *content)
set_bool(content, &rc.window_switcher.outlines); set_bool(content, &rc.window_switcher.outlines);
} else if (!strcasecmp(nodename, "allWorkspaces.windowSwitcher")) { } else if (!strcasecmp(nodename, "allWorkspaces.windowSwitcher")) {
set_bool(content, &rc.window_switcher.allworkspaces); set_bool(content, &rc.window_switcher.allworkspaces);
if (parse_bool(content, -1) == true) { if (rc.window_switcher.allworkspaces) {
rc.window_switcher.criteria &= rc.window_switcher.criteria &=
~LAB_VIEW_CRITERIA_CURRENT_WORKSPACE; ~LAB_VIEW_CRITERIA_CURRENT_WORKSPACE;
} else {
rc.window_switcher.criteria |=
LAB_VIEW_CRITERIA_CURRENT_WORKSPACE;
} }
/* Remove this long term - just a friendly warning for now */ /* Remove this long term - just a friendly warning for now */

View file

@ -230,10 +230,18 @@ get_type(struct view *view)
{ {
switch (view->type) { switch (view->type) {
case LAB_XDG_SHELL_VIEW: case LAB_XDG_SHELL_VIEW:
return "[W] "; if (rc.window_switcher.allworkspaces) {
return "[W] ";
} else {
return "[xdg-shell]";
}
#if HAVE_XWAYLAND #if HAVE_XWAYLAND
case LAB_XWAYLAND_VIEW: case LAB_XWAYLAND_VIEW:
return "[X] "; if (rc.window_switcher.allworkspaces) {
return "[X] ";
} else {
return "[xwayland]";
}
#endif #endif
} }
return ""; return "";
@ -376,7 +384,7 @@ render_osd(struct server *server, cairo_t *cairo, int w, int h,
} }
buf_add(&buf, get_type(*view)); buf_add(&buf, get_type(*view));
if (rc.window_switcher.allworkspaces && if (rc.window_switcher.allworkspaces &&
wl_list_length(&server->outputs) > 1) { wl_list_length(&server->outputs) > 1) {
buf_add(&buf, (*view)->output->wlr_output->name); buf_add(&buf, (*view)->output->wlr_output->name);
} }
break; break;