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].

Reply via email to