fixed memory leaks and crash with deminiaturization
[wmaker-crm.git] / src / session.h
blob5134da1bc065261b4a8a2f57023addd03519d488
1 /* session.h
3 * Copyright (c) 1999 Alfredo K. Kojima
5 * Window Maker window manager
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
20 * USA.
23 #ifndef WMSESSION_H_
24 #define WMSESSION_H_
27 typedef struct {
28 int x;
29 int y;
30 unsigned int w; /* client size */
31 unsigned int h;
33 int workspace;
34 unsigned shortcuts; /* mask like 1<<shortcut_number */
36 WWindowAttributes mflags;
37 WWindowAttributes flags;
39 char miniaturized;
40 char shaded;
41 char maximized;
43 char user_changed_width;
44 char user_changed_height;
45 } WSessionData;
48 void wSessionSaveState(WScreen *scr);
50 void wSessionSaveClients(WScreen *scr);
52 void wSessionSendSaveYourself(WScreen *scr);
54 void wSessionClearState(WScreen *scr);
56 void wSessionRestoreState(WScreen *scr);
58 void wSessionRestoreLastWorkspace(WScreen *scr);
60 #ifdef XSMP_ENABLED
61 void wSessionConnectManager(char **argv, int argc);
63 void wSessionDisconnectManager(void);
65 void wSessionRequestShutdown(void);
67 Bool wSessionIsManaged(void);
69 #endif
71 Bool wSessionGetStateFor(WWindow *wwin, WSessionData *state);
73 #endif