1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-03-19 09:13:33 +01:00

New expert option: cycle all windows from all workspaces

Mentioned on the WMaker user mailing list, option disabled by default.

https://groups.google.com/g/wmaker-user/c/pR8P-ZYCDFo/m/Wo42U_xqBgAJ

So basically the patch is adding a new expert option in WPrefs (disabled by
default) to allow the switch panel to cycle over all the windows from all
workspaces. I believe it's useful if you are using a lot of fullscreen apps
each on different workspaces.
This commit is contained in:
David Maciejak
2026-01-02 12:52:50 -05:00
committed by Carlos R. Mafra
parent e356ef8c05
commit afe13d3e72
5 changed files with 9 additions and 2 deletions

View File

@@ -72,6 +72,9 @@ static struct expert_option {
{ N_("Cycle windows only on the active head."),
/* default: */ False, OPTION_WMAKER, "CycleActiveHeadOnly" },
{ N_("Cycle all windows from all workspaces."),
/* default: */ False, OPTION_WMAKER, "CycleAllWorkspaces" },
{ N_("Ignore minimized windows when cycling."),
/* default: */ False, OPTION_WMAKER, "CycleIgnoreMinimized" },

View File

@@ -252,5 +252,6 @@
SelectCursor = (builtin, cross);
DialogHistoryLines = 500;
CycleActiveHeadOnly = NO;
CycleAllWorkspaces = NO;
CycleIgnoreMinimized = NO;
}

View File

@@ -454,6 +454,7 @@ extern struct WPreferences {
char single_click; /* single click to lauch applications */
int history_lines; /* history of "Run..." dialog */
char cycle_active_head_only; /* Cycle only windows on the active head */
char cycle_all_workspaces; /* Cycle all windows from all workspaces */
char cycle_ignore_minimized; /* Ignore minimized windows when cycling */
char double_click_fullscreen; /* Double click on titlebar maximize a window to full screen*/
char close_rootmenu_left_right_click;/* Close application menu when mouse (left or right) is clicked outside focus */

View File

@@ -849,6 +849,8 @@ WDefaultEntry optionList[] = {
&wPreferences.history_lines, getInt, NULL, NULL, NULL},
{"CycleActiveHeadOnly", "NO", NULL,
&wPreferences.cycle_active_head_only, getBool, NULL, NULL, NULL},
{"CycleAllWorkspaces", "NO", NULL,
&wPreferences.cycle_all_workspaces, getBool, NULL, NULL, NULL},
{"CycleIgnoreMinimized", "NO", NULL,
&wPreferences.cycle_ignore_minimized, getBool, NULL, NULL, NULL},
{"DbClickFullScreen", "NO", NULL,

View File

@@ -79,7 +79,7 @@ static short int label_height;
static int canReceiveFocus(WWindow *wwin)
{
if (wwin->frame->workspace != wwin->screen_ptr->current_workspace)
if (!wPreferences.cycle_all_workspaces && wwin->frame->workspace != wwin->screen_ptr->current_workspace)
return 0;
if (wPreferences.cycle_active_head_only &&
@@ -90,7 +90,7 @@ static int canReceiveFocus(WWindow *wwin)
return 0;
if (!wwin->flags.mapped) {
if (!wwin->flags.shaded && !wwin->flags.miniaturized && !wwin->flags.hidden)
if (!wwin->flags.shaded && !wwin->flags.miniaturized && !wwin->flags.hidden && !wPreferences.cycle_all_workspaces)
return 0;
else
return -1;