summaryrefslogtreecommitdiff
path: root/imports
diff options
context:
space:
mode:
authorDominik Holland <dominik.holland@pelagicore.com>2016-10-05 13:46:11 +0200
committerDominik Holland <dominik.holland@pelagicore.com>2016-10-05 15:53:20 +0000
commitc9d5103d5088fe81490d035ff4141c89b3c923f2 (patch)
tree42e10f6540f31e3f9707694778f27191ec60aaf7 /imports
parentd48bacf3427168f4c48a744ade24f2864e864570 (diff)
downloadneptune-ui-c9d5103d5088fe81490d035ff4141c89b3c923f2.tar.gz
Improve window handling
When starting an application in the minimized state we still need to accept the window, but reparent it to a dummy item instead of pushing it into the window stack. This is achieved by extending the applicationSurfaceReady signal with a isMinimized property. Also use the new isClosing property of the application manager to identify closing windows. This is needed to make sure we only raise windows which are in a usable state. Change-Id: I0a5d544576859024b3f33e0814e72707bc692621 Reviewed-by: Nedim Hadzic <nedim.hadzic@pelagicore.com> Reviewed-by: Erik Botö <erik.boto@pelagicore.com>
Diffstat (limited to 'imports')
-rw-r--r--imports/system/models/ApplicationManagerInterface.qml17
1 files changed, 9 insertions, 8 deletions
diff --git a/imports/system/models/ApplicationManagerInterface.qml b/imports/system/models/ApplicationManagerInterface.qml
index 3122b30..9196606 100644
--- a/imports/system/models/ApplicationManagerInterface.qml
+++ b/imports/system/models/ApplicationManagerInterface.qml
@@ -57,7 +57,7 @@ QtObject {
}
}
- signal applicationSurfaceReady(Item item)
+ signal applicationSurfaceReady(Item item, bool isMinimized)
signal releaseApplicationSurface()
// Cluster signals
@@ -81,12 +81,13 @@ QtObject {
var acceptWindow = true;
var appID = WindowManager.get(index).applicationId;
+ var isMinimized = false;
if (isInWidgetState) {
if (ApplicationManager.get(appID).categories[0] === "navigation") {
root.mapWidget = item
}
- acceptWindow = false
+ return
}
else if (isClusterWidget) {
if (!Style.withCluster) {
@@ -99,7 +100,7 @@ QtObject {
else if (ApplicationManager.get(appID).categories[0] === "media") {
root.clusterWidgetReady("media", item)
}
- acceptWindow = false
+ return
}
} else {
@@ -110,8 +111,8 @@ QtObject {
for (i = 0; i < root.minimizedItems.length; ++i) {
if (appID === root.minimizedItems[i]) {
- acceptWindow = false;
root.minimizedItems.pop(appID)
+ isMinimized = true;
break
}
}
@@ -119,9 +120,9 @@ QtObject {
if (acceptWindow) {
root.windowItem = item
- WindowManager.setWindowProperty(item, "visibility", true)
+ WindowManager.setWindowProperty(item, "visibility", !isMinimized)
- root.applicationSurfaceReady(item)
+ root.applicationSurfaceReady(item, isMinimized)
} else {
// If nobody feels responsible for this window, we need to at least give it a
// parent, to not block the client process which would wait for result of the
@@ -179,7 +180,7 @@ QtObject {
print(":::LaunchController::: WindowManager:raiseApplicaitonWindow" + appId + " " + WindowManager.count)
root.activeAppId = appId
for (var i = 0; i < WindowManager.count; i++) {
- if (WindowManager.get(i).applicationId === appId) {
+ if (!WindowManager.get(i).isClosing && WindowManager.get(i).applicationId === appId) {
var item = WindowManager.get(i).windowItem
print(":::LaunchController::: App found. Running the app " + appId + " Item: " + item)
var isWidget = (WindowManager.windowProperty(item, "windowType") === "widget")
@@ -191,7 +192,7 @@ QtObject {
if (!isMapWidget && !isClusterWidget) {
WindowManager.setWindowProperty(item, "visibility", true)
root.windowItem = item
- root.applicationSurfaceReady(item)
+ root.applicationSurfaceReady(item, false)
break
}
}