KWin
Loading...
Searching...
No Matches
sm.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 1999, 2000 Matthias Ettrich <ettrich@kde.org>
6 SPDX-FileCopyrightText: 2003 Lubos Lunak <l.lunak@kde.org>
7
8 SPDX-License-Identifier: GPL-2.0-or-later
9*/
10
11#pragma once
12
13#include <QDBusContext>
14#include <QDataStream>
15#include <QRect>
16#include <QStringList>
17#include <QTimer>
18
19#include <KConfigGroup>
20
21#include "effect/globals.h"
22#include <netwm_def.h>
23
24namespace KWin
25{
26
27class X11Window;
28struct SessionInfo;
29class XdgToplevelWindow;
30
31class SessionManager : public QObject, public QDBusContext
32{
33 Q_OBJECT
34public:
36 SMSavePhase0, // saving global state in "phase 0"
37 SMSavePhase2, // saving window state in phase 2
38 SMSavePhase2Full, // complete saving in phase2, there was no phase 0
39 };
40
41 SessionManager(QObject *parent);
42 ~SessionManager() override;
43
44 SessionState state() const;
45
46 void loadSubSessionInfo(const QString &name);
47 void storeSubSession(const QString &name, QSet<QByteArray> sessionIds);
48
50
51Q_SIGNALS:
53
54 void loadSessionRequested(const QString &name);
55 void prepareSessionSaveRequested(const QString &name);
56 void finishSessionSaveRequested(const QString &name);
57
58public Q_SLOTS: // DBus API
59 void setState(uint state);
60 void loadSession(const QString &name);
61 void aboutToSaveSession(const QString &name);
62 void finishSaveSession(const QString &name);
64 void quit();
65
66private:
68
69 void storeSession(const QString &sessionName, SMSavePhase phase);
70 void storeClient(KConfigGroup &cg, int num, X11Window *c);
71 void loadSessionInfo(const QString &sessionName);
72 void addSessionInfo(KConfigGroup &cg);
73
74 SessionState m_sessionState = SessionState::Normal;
75
76 int m_sessionActiveClient;
77 int m_sessionDesktop;
78
79 QList<SessionInfo *> session;
80 QList<XdgToplevelWindow *> m_pendingWindows;
81 QTimer m_closeTimer;
82 std::unique_ptr<QObject> m_closingWindowsGuard;
83};
84
86{
87 QByteArray sessionId;
88 QString windowRole;
89 QString wmCommand;
91 QString resourceName;
93
94 QRect geometry;
95 QRect restore;
96 QRect fsrestore;
102 bool shaded;
109 NET::WindowType windowType;
110 QString shortcut;
111 bool active; // means 'was active in the saved session'
113 float opacity;
114
115 QStringList activities;
116};
117
118} // namespace
void loadSubSessionInfo(const QString &name)
Definition sm.cpp:274
~SessionManager() override
Definition sm.cpp:356
SessionInfo * takeSessionInfo(X11Window *)
Definition sm.cpp:298
SessionManager(QObject *parent)
Definition sm.cpp:349
void finishSessionSaveRequested(const QString &name)
void finishSaveSession(const QString &name)
Definition sm.cpp:408
void loadSession(const QString &name)
Definition sm.cpp:228
void aboutToSaveSession(const QString &name)
Definition sm.cpp:402
void setState(uint state)
Definition sm.cpp:366
void loadSessionRequested(const QString &name)
SessionState state() const
Definition sm.cpp:361
bool closeWaylandWindows()
Definition sm.cpp:414
void prepareSessionSaveRequested(const QString &name)
void storeSubSession(const QString &name, QSet< QByteArray > sessionIds)
Definition sm.cpp:182
SessionState
Definition globals.h:132
QString windowRole
Definition sm.h:88
bool minimized
Definition sm.h:100
QString resourceClass
Definition sm.h:92
bool noBorder
Definition sm.h:108
float opacity
Definition sm.h:113
QRect fsrestore
Definition sm.h:96
QByteArray sessionId
Definition sm.h:87
NET::WindowType windowType
Definition sm.h:109
bool skipSwitcher
Definition sm.h:107
QString shortcut
Definition sm.h:110
QStringList activities
Definition sm.h:115
int maximized
Definition sm.h:97
QString wmCommand
Definition sm.h:89
bool keepBelow
Definition sm.h:104
int stackingOrder
Definition sm.h:112
bool onAllDesktops
Definition sm.h:101
bool skipPager
Definition sm.h:106
QString wmClientMachine
Definition sm.h:90
bool skipTaskbar
Definition sm.h:105
bool active
Definition sm.h:111
QRect restore
Definition sm.h:95
bool shaded
Definition sm.h:102
QRect geometry
Definition sm.h:94
bool keepAbove
Definition sm.h:103
QString resourceName
Definition sm.h:91
int desktop
Definition sm.h:99
int fullscreen
Definition sm.h:98