on xenial help sign in
Fix state loading
commit7f90c3309903a5cb1281a288fcd03818165890ee authorDaniel d'Andrada <daniel.dandrada@canonical.com> dateThu 1 Dec 2016, 16:35 (10 years ago) parent6068ba9
3 files changed+29
plugins/Utils/windowstatestorage.cpp+23 plugins/Utils/windowstatestorage.h+5 qml/Stage/Stage.qml+1
plugins/Utils/windowstatestorage.cpp+23
@@ -189,3 +189,26 @@ QSqlQuery WindowStateStorage::getValue(const QString &queryString) const
189189 }
190190 return query;
191191}
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 @@
1919#include <QMutex>
2020#include <QFuture>
2121
22+// unity-api
23+#include <unity/shell/application/Mir.h>
24+
2225class WindowStateStorage: public QObject
2326{
2427 Q_OBJECT
@@ -56,6 +59,8 @@ public:
5659 Q_INVOKABLE void saveStage(const QString &appId, int stage);
5760 Q_INVOKABLE int getStage(const QString &appId, int defaultValue) const;
5861
62+ Q_INVOKABLE Mir::State toMirState(WindowState state) const;
63+
5964private:
6065 void initdb();
6166
qml/Stage/Stage.qml+1
@@ -902,6 +902,7 @@ FocusScope {
902902 windowedY = priv.focusedAppDelegate ? priv.focusedAppDelegate.windowedY + units.gu(3) : normalZ * units.gu(3)
903903 // Now load any saved state. This needs to happen *after* the cascading!
904904 resizeArea.loadWindowState();
905+ model.window.requestState(WindowStateStorage.toMirState(windowState));
905906
906907 updateQmlFocusFromMirSurfaceFocus();
907908