Arrange the surface z-order in the layer v0.6.3
authorBocklage, Jens <Jens_Bocklage@mentor.com>
Fri, 25 Nov 2016 14:58:23 +0000 (15:58 +0100)
committerBocklage, Jens <Jens_Bocklage@mentor.com>
Fri, 25 Nov 2016 14:58:23 +0000 (15:58 +0100)
Using ilm_layerSetRenderOrder to set the order of the surfaces
inside the layer. This is neccessary to show the surfaces
on the screen.

Resolves: #SPEC-333

Signed-off-by: Bocklage, Jens <Jens_Bocklage@mentor.com>
WindowManager/src/windowmanager.cpp

index a03bab6..0871eb7 100644 (file)
@@ -275,14 +275,26 @@ void WindowManager::updateScreen()
         ilm_commitChanges();
     }
 
+    // display layer render order
     t_ilm_layer renderOrder[WINDOWMANAGER_LAYER_NUM];
     renderOrder[0] = WINDOWMANAGER_LAYER_HOMESCREEN;
     renderOrder[1] = WINDOWMANAGER_LAYER_APPLICATIONS;
     renderOrder[2] = WINDOWMANAGER_LAYER_HOMESCREEN_OVERLAY;
     renderOrder[3] = WINDOWMANAGER_LAYER_POPUP;
-
     ilm_displaySetRenderOrder(0, renderOrder, WINDOWMANAGER_LAYER_NUM);
 
+    // layer surface render order
+    t_ilm_int length;
+    t_ilm_surface* pArray;
+    ilm_getSurfaceIDsOnLayer(WINDOWMANAGER_LAYER_HOMESCREEN, &length, &pArray);
+    ilm_layerSetRenderOrder(WINDOWMANAGER_LAYER_HOMESCREEN, pArray, length);
+    ilm_getSurfaceIDsOnLayer(WINDOWMANAGER_LAYER_APPLICATIONS, &length, &pArray);
+    ilm_layerSetRenderOrder(WINDOWMANAGER_LAYER_APPLICATIONS, pArray, length);
+    ilm_getSurfaceIDsOnLayer(WINDOWMANAGER_LAYER_HOMESCREEN_OVERLAY, &length, &pArray);
+    ilm_layerSetRenderOrder(WINDOWMANAGER_LAYER_HOMESCREEN_OVERLAY, pArray, length);
+    ilm_getSurfaceIDsOnLayer(WINDOWMANAGER_LAYER_POPUP, &length, &pArray);
+    ilm_layerSetRenderOrder(WINDOWMANAGER_LAYER_POPUP, pArray, length);
+
     ilm_commitChanges();
 
 #endif