The variable session_state, defined in screen.h (WScreen), is moved to
the global variable w_global.

Signed-off-by: Rodolfo García Peñas (kix) <[email protected]>
---
 src/WindowMaker.h |  3 +++
 src/dock.c        | 12 +++++-------
 src/menu.c        |  7 +++----
 src/screen.c      | 31 ++++++++++++++++---------------
 src/screen.h      |  2 --
 src/session.c     | 27 ++++++++++++++-------------
 src/workspace.c   |  6 +++---
 7 files changed, 44 insertions(+), 44 deletions(-)

diff --git a/src/WindowMaker.h b/src/WindowMaker.h
index 36d52f5..2e5742f 100644
--- a/src/WindowMaker.h
+++ b/src/WindowMaker.h
@@ -529,6 +529,9 @@ extern struct wmaker_global_variables {
                XContext stack;
        } context;
 
+       /* Session related */
+       WMPropList *session_state;
+
 } w_global;
 
 extern unsigned int ValidModMask;
diff --git a/src/dock.c b/src/dock.c
index f4a4bd3..634f7d9 100644
--- a/src/dock.c
+++ b/src/dock.c
@@ -1579,8 +1579,7 @@ void wDockSaveState(WScreen *scr, WMPropList *old_state)
                WMReleasePropList(keys);
        }
 
-       WMPutInPLDictionary(scr->session_state, dDock, dock_state);
-
+       WMPutInPLDictionary(w_global.session_state, dDock, dock_state);
        WMReleasePropList(dock_state);
 }
 
@@ -1590,8 +1589,7 @@ void wClipSaveState(WScreen *scr)
 
        clip_state = make_icon_state(wks_info.clip_icon);
 
-       WMPutInPLDictionary(scr->session_state, dClip, clip_state);
-
+       WMPutInPLDictionary(w_global.session_state, dClip, clip_state);
        WMReleasePropList(clip_state);
 }
 
@@ -4900,7 +4898,7 @@ void wDrawersSaveState(WScreen *scr)
                WMAddToPLArray(all_drawers, drawer_state);
                WMReleasePropList(drawer_state);
        }
-       WMPutInPLDictionary(scr->session_state, dDrawers, all_drawers);
+       WMPutInPLDictionary(w_global.session_state, dDrawers, all_drawers);
        WMReleasePropList(all_drawers);
 }
 
@@ -4912,10 +4910,10 @@ void wDrawersRestoreState(WScreen *scr)
 
        make_keys();
 
-       if (scr->session_state == NULL)
+       if (w_global.session_state == NULL)
                return;
 
-       all_drawers = WMGetFromPLDictionary(scr->session_state, dDrawers);
+       all_drawers = WMGetFromPLDictionary(w_global.session_state, dDrawers);
        if (!all_drawers)
                return;
 
diff --git a/src/menu.c b/src/menu.c
index efdc7f0..c5ff5c6 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -2275,7 +2275,7 @@ void wMenuSaveState(WScreen * scr)
 
        if (save_menus) {
                key = WMCreatePLString("Menus");
-               WMPutInPLDictionary(scr->session_state, key, menus);
+               WMPutInPLDictionary(w_global.session_state, key, menus);
                WMReleasePropList(key);
        }
        WMReleasePropList(menus);
@@ -2478,12 +2478,11 @@ void wMenuRestoreState(WScreen * scr)
 {
        WMPropList *menus, *menu, *key, *skey;
 
-       if (!scr->session_state) {
+       if (!w_global.session_state)
                return;
-       }
 
        key = WMCreatePLString("Menus");
-       menus = WMGetFromPLDictionary(scr->session_state, key);
+       menus = WMGetFromPLDictionary(w_global.session_state, key);
        WMReleasePropList(key);
 
        if (!menus)
diff --git a/src/screen.c b/src/screen.c
index e70776b..98a372f 100644
--- a/src/screen.c
+++ b/src/screen.c
@@ -812,24 +812,25 @@ void wScreenRestoreState(WScreen * scr)
                snprintf(buf, sizeof(buf), "WMState.%i", scr->screen);
                path = wdefaultspathfordomain(buf);
        }
-       scr->session_state = WMReadPropListFromFile(path);
+
+       w_global.session_state = WMReadPropListFromFile(path);
        wfree(path);
-       if (!scr->session_state && wScreenCount > 1) {
+       if (!w_global.session_state && wScreenCount > 1) {
                path = wdefaultspathfordomain("WMState");
-               scr->session_state = WMReadPropListFromFile(path);
+               w_global.session_state = WMReadPropListFromFile(path);
                wfree(path);
        }
 
-       if (!scr->session_state)
-               scr->session_state = WMCreatePLDictionary(NULL, NULL);
+       if (!w_global.session_state)
+               w_global.session_state = WMCreatePLDictionary(NULL, NULL);
 
        if (!wPreferences.flags.nodock) {
-               state = WMGetFromPLDictionary(scr->session_state, dDock);
+               state = WMGetFromPLDictionary(w_global.session_state, dDock);
                scr->dock = wDockRestoreState(scr, state, WM_DOCK);
        }
 
        if (!wPreferences.flags.noclip) {
-               state = WMGetFromPLDictionary(scr->session_state, dClip);
+               state = WMGetFromPLDictionary(w_global.session_state, dClip);
                wks_info.clip_icon = wClipRestoreState(scr, state);
        }
        
@@ -858,8 +859,8 @@ void wScreenSaveState(WScreen * scr)
        if (wPreferences.flags.noupdates)
                return;
 
-       old_state = scr->session_state;
-       scr->session_state = WMCreatePLDictionary(NULL, NULL);
+       old_state = w_global.session_state;
+       w_global.session_state = WMCreatePLDictionary(NULL, NULL);
 
        WMPLSetCaseSensitive(True);
 
@@ -868,14 +869,14 @@ void wScreenSaveState(WScreen * scr)
                wDockSaveState(scr, old_state);
        } else {
                if ((foo = WMGetFromPLDictionary(old_state, dDock)) != NULL) {
-                       WMPutInPLDictionary(scr->session_state, dDock, foo);
+                       WMPutInPLDictionary(w_global.session_state, dDock, foo);
                }
        }
        if (!wPreferences.flags.noclip) {
                wClipSaveState(scr);
        } else {
                if ((foo = WMGetFromPLDictionary(old_state, dClip)) != NULL) {
-                       WMPutInPLDictionary(scr->session_state, dClip, foo);
+                       WMPutInPLDictionary(w_global.session_state, dClip, foo);
                }
        }
 
@@ -885,7 +886,7 @@ void wScreenSaveState(WScreen * scr)
                wDrawersSaveState(scr);
        } else {
                if ((foo = WMGetFromPLDictionary(old_state, dDrawers)) != NULL) 
{
-                       WMPutInPLDictionary(scr->session_state, dDrawers, foo);
+                       WMPutInPLDictionary(w_global.session_state, dDrawers, 
foo);
                }
        }
 
@@ -894,10 +895,10 @@ void wScreenSaveState(WScreen * scr)
                wSessionSaveState(scr);
        } else {
                if ((foo = WMGetFromPLDictionary(old_state, dApplications)) != 
NULL) {
-                       WMPutInPLDictionary(scr->session_state, dApplications, 
foo);
+                       WMPutInPLDictionary(w_global.session_state, 
dApplications, foo);
                }
                if ((foo = WMGetFromPLDictionary(old_state, dWorkspace)) != 
NULL) {
-                       WMPutInPLDictionary(scr->session_state, dWorkspace, 
foo);
+                       WMPutInPLDictionary(w_global.session_state, dWorkspace, 
foo);
                }
        }
 
@@ -913,7 +914,7 @@ void wScreenSaveState(WScreen * scr)
                snprintf(buf, sizeof(buf), "WMState.%i", scr->screen);
                str = wdefaultspathfordomain(buf);
        }
-       if (!WMWritePropListToFile(scr->session_state, str)) {
+       if (!WMWritePropListToFile(w_global.session_state, str)) {
                werror(_("could not save session state in %s"), str);
        }
        wfree(str);
diff --git a/src/screen.h b/src/screen.h
index 4387ead..5675915 100644
--- a/src/screen.h
+++ b/src/screen.h
@@ -240,8 +240,6 @@ typedef struct _WScreen {
     /* state and other informations */
     short cascade_index;              /* for cascade window placement */
 
-    WMPropList *session_state;
-
     /* for double-click detection */
     Time last_click_time;
     Window last_click_window;
diff --git a/src/session.c b/src/session.c
index 8d89632..c5516da 100644
--- a/src/session.c
+++ b/src/session.c
@@ -282,9 +282,9 @@ void wSessionSaveState(WScreen * scr)
 
        make_keys();
 
-       if (!scr->session_state) {
-               scr->session_state = WMCreatePLDictionary(NULL, NULL);
-               if (!scr->session_state)
+       if (!w_global.session_state) {
+               w_global.session_state = WMCreatePLDictionary(NULL, NULL);
+               if (!w_global.session_state)
                        return;
        }
 
@@ -314,12 +314,13 @@ void wSessionSaveState(WScreen * scr)
                }
                wwin = wwin->prev;
        }
-       WMRemoveFromPLDictionary(scr->session_state, sApplications);
-       WMPutInPLDictionary(scr->session_state, sApplications, list);
+
+       WMRemoveFromPLDictionary(w_global.session_state, sApplications);
+       WMPutInPLDictionary(w_global.session_state, sApplications, list);
        WMReleasePropList(list);
 
        wks = 
WMCreatePLString(wks_info.workspaces[wks_info.current_workspace]->name);
-       WMPutInPLDictionary(scr->session_state, sWorkspace, wks);
+       WMPutInPLDictionary(w_global.session_state, sWorkspace, wks);
        WMReleasePropList(wks);
 
        WMFreeArray(wapp_list);
@@ -329,11 +330,11 @@ void wSessionClearState(WScreen * scr)
 {
        make_keys();
 
-       if (!scr->session_state)
+       if (!w_global.session_state)
                return;
 
-       WMRemoveFromPLDictionary(scr->session_state, sApplications);
-       WMRemoveFromPLDictionary(scr->session_state, sWorkspace);
+       WMRemoveFromPLDictionary(w_global.session_state, sApplications);
+       WMRemoveFromPLDictionary(w_global.session_state, sWorkspace);
 }
 
 static pid_t execCommand(WScreen *scr, char *command)
@@ -433,12 +434,12 @@ void wSessionRestoreState(WScreen *scr)
 
        make_keys();
 
-       if (!scr->session_state)
+       if (!w_global.session_state)
                return;
 
        WMPLSetCaseSensitive(True);
 
-       apps = WMGetFromPLDictionary(scr->session_state, sApplications);
+       apps = WMGetFromPLDictionary(w_global.session_state, sApplications);
        if (!apps)
                return;
 
@@ -538,12 +539,12 @@ void wSessionRestoreLastWorkspace(WScreen * scr)
 
        make_keys();
 
-       if (!scr->session_state)
+       if (!w_global.session_state)
                return;
 
        WMPLSetCaseSensitive(True);
 
-       wks = WMGetFromPLDictionary(scr->session_state, sWorkspace);
+       wks = WMGetFromPLDictionary(w_global.session_state, sWorkspace);
        if (!wks || !WMIsPLString(wks))
                return;
 
diff --git a/src/workspace.c b/src/workspace.c
index 1ec9bad..02bf0d9 100644
--- a/src/workspace.c
+++ b/src/workspace.c
@@ -828,7 +828,7 @@ void wWorkspaceSaveState(WScreen * scr, WMPropList * 
old_state)
                WMAddToPLArray(parr, wks_state);
                WMReleasePropList(wks_state);
        }
-       WMPutInPLDictionary(scr->session_state, dWorkspaces, parr);
+       WMPutInPLDictionary(w_global.session_state, dWorkspaces, parr);
        WMReleasePropList(parr);
 }
 
@@ -839,10 +839,10 @@ void wWorkspaceRestoreState(WScreen *scr)
 
        make_keys();
 
-       if (scr->session_state == NULL)
+       if (w_global.session_state == NULL)
                return;
 
-       parr = WMGetFromPLDictionary(scr->session_state, dWorkspaces);
+       parr = WMGetFromPLDictionary(w_global.session_state, dWorkspaces);
 
        if (!parr)
                return;
-- 
1.8.4.rc3


-- 
To unsubscribe, send mail to [email protected].

Reply via email to