mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 20:38:08 +01:00
Variable last_workspace moved to workspace object in global namespace
The variable last_workspace, that contains the last used workspace is moved to the global workspace properties. Now the screen is not needed to know the workspace_count. The variable name is changed to workspace.last_used because a similar variable name is also in the WApplication struct.
This commit is contained in:
committed by
Carlos R. Mafra
parent
9e103a46e9
commit
e5ae684d02
@@ -484,6 +484,7 @@ extern struct wmaker_global_variables {
|
|||||||
/* Workspace related */
|
/* Workspace related */
|
||||||
struct {
|
struct {
|
||||||
int count; /* number of workspaces */
|
int count; /* number of workspaces */
|
||||||
|
int last_used; /* last used workspace number */
|
||||||
|
|
||||||
WMFont *font_for_name; /* used during workspace switch */
|
WMFont *font_for_name; /* used during workspace switch */
|
||||||
} workspace;
|
} workspace;
|
||||||
|
|||||||
@@ -1578,7 +1578,7 @@ static void handleKeyPress(XEvent * event)
|
|||||||
wWorkspaceRelativeChange(scr, -1);
|
wWorkspaceRelativeChange(scr, -1);
|
||||||
break;
|
break;
|
||||||
case WKBD_LASTWORKSPACE:
|
case WKBD_LASTWORKSPACE:
|
||||||
wWorkspaceChange(scr, scr->last_workspace);
|
wWorkspaceChange(scr, w_global.workspace.last_used);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WKBD_MOVE_WORKSPACE1 ... WKBD_MOVE_WORKSPACE10:
|
case WKBD_MOVE_WORKSPACE1 ... WKBD_MOVE_WORKSPACE10:
|
||||||
@@ -1598,7 +1598,7 @@ static void handleKeyPress(XEvent * event)
|
|||||||
break;
|
break;
|
||||||
case WKBD_MOVE_LASTWORKSPACE:
|
case WKBD_MOVE_LASTWORKSPACE:
|
||||||
if (wwin)
|
if (wwin)
|
||||||
wWindowChangeWorkspace(wwin, scr->last_workspace);
|
wWindowChangeWorkspace(wwin, w_global.workspace.last_used);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WKBD_MOVE_NEXTWSLAYER:
|
case WKBD_MOVE_NEXTWSLAYER:
|
||||||
|
|||||||
@@ -124,8 +124,6 @@ typedef struct _WScreen {
|
|||||||
struct WWorkspace **workspaces; /* workspace array */
|
struct WWorkspace **workspaces; /* workspace array */
|
||||||
|
|
||||||
int current_workspace; /* current workspace number */
|
int current_workspace; /* current workspace number */
|
||||||
int last_workspace; /* last used workspace number */
|
|
||||||
|
|
||||||
|
|
||||||
WReservedArea *reservedAreas; /* used to build totalUsableArea */
|
WReservedArea *reservedAreas; /* used to build totalUsableArea */
|
||||||
|
|
||||||
|
|||||||
@@ -873,7 +873,7 @@ static void manageAllWindows(WScreen * scr, int crashRecovery)
|
|||||||
WMNextEvent(dpy, &ev);
|
WMNextEvent(dpy, &ev);
|
||||||
WMHandleEvent(&ev);
|
WMHandleEvent(&ev);
|
||||||
}
|
}
|
||||||
scr->last_workspace = 0;
|
w_global.workspace.last_used = 0;
|
||||||
wWorkspaceForceChange(scr, 0);
|
wWorkspaceForceChange(scr, 0);
|
||||||
if (!wPreferences.flags.noclip)
|
if (!wPreferences.flags.noclip)
|
||||||
wDockShowIcons(scr->workspaces[scr->current_workspace]->clip);
|
wDockShowIcons(scr->workspaces[scr->current_workspace]->clip);
|
||||||
|
|||||||
@@ -192,8 +192,8 @@ Bool wWorkspaceDelete(WScreen * scr, int workspace)
|
|||||||
|
|
||||||
if (scr->current_workspace >= w_global.workspace.count)
|
if (scr->current_workspace >= w_global.workspace.count)
|
||||||
wWorkspaceChange(scr, w_global.workspace.count - 1);
|
wWorkspaceChange(scr, w_global.workspace.count - 1);
|
||||||
if (scr->last_workspace >= w_global.workspace.count)
|
if (w_global.workspace.last_used >= w_global.workspace.count)
|
||||||
scr->last_workspace = 0;
|
w_global.workspace.last_used = 0;
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
@@ -479,7 +479,7 @@ void wWorkspaceForceChange(WScreen * scr, int workspace)
|
|||||||
|
|
||||||
wClipUpdateForWorkspaceChange(scr, workspace);
|
wClipUpdateForWorkspaceChange(scr, workspace);
|
||||||
|
|
||||||
scr->last_workspace = scr->current_workspace;
|
w_global.workspace.last_used = scr->current_workspace;
|
||||||
scr->current_workspace = workspace;
|
scr->current_workspace = workspace;
|
||||||
|
|
||||||
wWorkspaceMenuUpdate(scr, scr->workspace_menu);
|
wWorkspaceMenuUpdate(scr, scr->workspace_menu);
|
||||||
@@ -642,7 +642,7 @@ static void switchWSCommand(WMenu * menu, WMenuEntry * entry)
|
|||||||
|
|
||||||
static void lastWSCommand(WMenu *menu, WMenuEntry *entry)
|
static void lastWSCommand(WMenu *menu, WMenuEntry *entry)
|
||||||
{
|
{
|
||||||
wWorkspaceChange(menu->frame->screen_ptr, menu->frame->screen_ptr->last_workspace);
|
wWorkspaceChange(menu->frame->screen_ptr, w_global.workspace.last_used);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void deleteWSCommand(WMenu *menu, WMenuEntry *entry)
|
static void deleteWSCommand(WMenu *menu, WMenuEntry *entry)
|
||||||
@@ -787,7 +787,7 @@ void wWorkspaceMenuUpdate(WScreen * scr, WMenu * menu)
|
|||||||
wMenuSetEnabled(menu, MC_DESTROY_LAST, True);
|
wMenuSetEnabled(menu, MC_DESTROY_LAST, True);
|
||||||
|
|
||||||
/* back to last workspace */
|
/* back to last workspace */
|
||||||
if (w_global.workspace.count && scr->last_workspace != scr->current_workspace)
|
if (w_global.workspace.count && w_global.workspace.last_used != scr->current_workspace)
|
||||||
wMenuSetEnabled(menu, MC_LAST_USED, True);
|
wMenuSetEnabled(menu, MC_LAST_USED, True);
|
||||||
else
|
else
|
||||||
wMenuSetEnabled(menu, MC_LAST_USED, False);
|
wMenuSetEnabled(menu, MC_LAST_USED, False);
|
||||||
|
|||||||
Reference in New Issue
Block a user