on xenial help sign in
Fix state loading
7f90c33Daniel d'Andrada
plugins/Utils/windowstatestorage.cpp+23
@@ -189,3 +189,26 @@ QSqlQuery WindowStateStorage::getValue(const QString &queryString) const
189 }
189 }
190 return query;
190 return query;
191}
191}
192+
193+Mir::State WindowStateStorage::toMirState(WindowState state) const
194+{
195+ // assumes a single state (not an OR of several)
196+ switch (state) {
197+ case WindowStateMaximized: return Mir::MaximizedState;
198+ case WindowStateMinimized: return Mir::MinimizedState;
199+ case WindowStateFullscreen: return Mir::FullscreenState;
200+ case WindowStateMaximizedLeft: return Mir::MaximizedLeftState;
201+ case WindowStateMaximizedRight: return Mir::MaximizedRightState;
202+ case WindowStateMaximizedHorizontally: return Mir::HorizMaximizedState;
203+ case WindowStateMaximizedVertically: return Mir::VertMaximizedState;
204+ case WindowStateMaximizedTopLeft: return Mir::MaximizedTopLeftState;
205+ case WindowStateMaximizedTopRight: return Mir::MaximizedTopRightState;
206+ case WindowStateMaximizedBottomLeft: return Mir::MaximizedBottomLeftState;
207+ case WindowStateMaximizedBottomRight: return Mir::MaximizedBottomRightState;
208+
209+ case WindowStateNormal:
210+ case WindowStateRestored:
211+ default:
212+ return Mir::RestoredState;
213+ }
214+}
plugins/Utils/windowstatestorage.h+5
@@ -19,6 +19,9 @@
19#include <QMutex>
19#include <QMutex>
20#include <QFuture>
20#include <QFuture>
21
21
22+// unity-api
23+#include <unity/shell/application/Mir.h>
24+
22class WindowStateStorage: public QObject
25class WindowStateStorage: public QObject
23{
26{
24 Q_OBJECT
27 Q_OBJECT
@@ -56,6 +59,8 @@ public:
56 Q_INVOKABLE void saveStage(const QString &appId, int stage);
59 Q_INVOKABLE void saveStage(const QString &appId, int stage);
57 Q_INVOKABLE int getStage(const QString &appId, int defaultValue) const;
60 Q_INVOKABLE int getStage(const QString &appId, int defaultValue) const;
58
61
62+ Q_INVOKABLE Mir::State toMirState(WindowState state) const;
63+
59private:
64private:
60 void initdb();
65 void initdb();
61
66
qml/Stage/Stage.qml+1
@@ -902,6 +902,7 @@ FocusScope {
902 windowedY = priv.focusedAppDelegate ? priv.focusedAppDelegate.windowedY + units.gu(3) : normalZ * units.gu(3)
902 windowedY = priv.focusedAppDelegate ? priv.focusedAppDelegate.windowedY + units.gu(3) : normalZ * units.gu(3)
903 // Now load any saved state. This needs to happen *after* the cascading!
903 // Now load any saved state. This needs to happen *after* the cascading!
904 resizeArea.loadWindowState();
904 resizeArea.loadWindowState();
905+ model.window.requestState(WindowStateStorage.toMirState(windowState));
905
906
906 updateQmlFocusFromMirSurfaceFocus();
907 updateQmlFocusFromMirSurfaceFocus();
907
908