1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-20 04:48:06 +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:
Rodolfo García Peñas (kix)
2013-10-08 00:56:31 +02:00
committed by Carlos R. Mafra
parent 9e103a46e9
commit e5ae684d02
5 changed files with 9 additions and 10 deletions

View File

@@ -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;

View File

@@ -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:

View File

@@ -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 */

View File

@@ -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);

View File

@@ -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);