+
+void WindowManager::showLayer(int layer)
+{
+ qDebug("-=[showLayer]=-");
+ qDebug("layer %d", layer);
+
+#ifdef HAVE_IVI_LAYERMANAGEMENT_API
+ // POPUP=0, HOMESCREEN_OVERLAY=1, APPS=2, HOMESCREEN=3
+ if (layer >= 0 && layer < WINDOWMANAGER_LAYER_NUM) {
+ static const int layer_id_array[] = {
+ WINDOWMANAGER_LAYER_POPUP,
+ WINDOWMANAGER_LAYER_HOMESCREEN_OVERLAY,
+ WINDOWMANAGER_LAYER_APPLICATIONS,
+ WINDOWMANAGER_LAYER_HOMESCREEN,
+ };
+
+ m_showLayers[layer] = layer_id_array[layer];
+
+ t_ilm_layer renderOrder[WINDOWMANAGER_LAYER_NUM];
+ int num_layers = getLayerRenderOrder(renderOrder);
+ ilm_displaySetRenderOrder(m_screenId, renderOrder, num_layers);
+ ilm_commitChanges();
+ }
+#endif
+}
+
+void WindowManager::showAppLayer(int pid)
+{
+ qDebug("-=[showAppLayer]=-");
+ qDebug("pid %d", pid);
+
+ if (pid == -1) {
+ /* nothing to show */
+ return;
+ }
+#ifdef HAVE_IVI_LAYERMANAGEMENT_API
+
+ /* clear pending flag */
+ m_pending_to_show = -1;
+
+ /* search layer id for application to show */
+ QMap<pid_t, t_ilm_layer>::const_iterator i = m_appLayers.find(pid);
+
+ if (i != m_appLayers.end()) {
+ m_showLayers[2] = m_appLayers.value(pid);
+ qDebug("Found layer(%d) to show for app(pid=%d)", m_showLayers[2], pid);
+ } else {
+ /* Probably app layer hasn't been made yet */
+ m_pending_to_show = pid;
+ /* hide current app once, back to default screen */
+ m_showLayers[2] = 0;
+
+ qDebug("No layer to show for app(pid=%d)", pid);
+ }
+ t_ilm_layer renderOrder[WINDOWMANAGER_LAYER_NUM];
+
+ int num_layers = getLayerRenderOrder(renderOrder);
+ ilm_displaySetRenderOrder(m_screenId, renderOrder, num_layers);
+ ilm_commitChanges();
+#endif
+}