From: "Rodolfo García Peñas (kix)" <[email protected]>
The function update_workspace_clip() can get the Clip proplist using
their own wks_state. So, the WProplist argument could be removed.
---
src/workspace.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/src/workspace.c b/src/workspace.c
index e917a69..518aafa 100644
--- a/src/workspace.c
+++ b/src/workspace.c
@@ -67,7 +67,7 @@ extern WShortKey wKeyBindings[WKBD_LAST];
static WMPropList *dWorkspaces = NULL;
static WMPropList *dClip, *dName;
-static void update_workspace_clip(WScreen *scr, int workspace, WMPropList
*wks_state);
+static void update_workspace_clip(WScreen *scr, int workspace);
static void make_keys(void)
{
@@ -859,7 +859,6 @@ void wWorkspaceRestoreState(WScreen *scr)
return;
parr = WMGetFromPLDictionary(scr->session_state, dWorkspaces);
-
if (!parr)
return;
@@ -886,7 +885,7 @@ void wWorkspaceRestoreState(WScreen *scr)
wfree(scr->workspaces[i]->name);
scr->workspaces[i]->name = wstrdup(WMGetFromPLString(pstr));
- update_workspace_clip(scr, i, wks_state);
+ update_workspace_clip(scr, i);
WMPostNotificationName(WMNWorkspaceNameChanged, scr, (void
*)(uintptr_t) i);
}
@@ -912,16 +911,26 @@ int wGetWorkspaceNumber(WScreen * scr, char * value)
return w;
}
-static void update_workspace_clip(WScreen *scr, int workspace, WMPropList
*wks_state)
+static void update_workspace_clip(WScreen *scr, int workspace)
{
WAppIcon *aicon;
- WMPropList *clip_state;
+ WMPropList *parr, *wks_state, *clip_state;
int added_omnipresent_icons = 0, j, k;
if (wPreferences.flags.noclip)
return;
+ if (scr->session_state == NULL)
+ return;
+
+ /* Get the Clip state for that workspace */
+ parr = WMGetFromPLDictionary(scr->session_state, dWorkspaces);
+ if (!parr)
+ return;
+
+ wks_state = WMGetFromPLArray(parr, workspace);
clip_state = WMGetFromPLDictionary(wks_state, dClip);
+
if (scr->workspaces[workspace]->clip)
wDockDestroy(scr->workspaces[workspace]->clip);
--
1.7.10.4
--
To unsubscribe, send mail to [email protected].