Change size (0, 0) if layer turns invisible
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Sat, 8 Sep 2018 09:18:50 +0000 (18:18 +0900)
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Sat, 8 Sep 2018 09:18:50 +0000 (18:18 +0900)
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
src/wm_layer_control.cpp

index cf3b475..0632085 100644 (file)
@@ -559,17 +559,19 @@ WMError LayerControl::makeVisible(const shared_ptr<WMClient> client)
     // Don't check here the client is not nullptr
     unsigned layer = client->layerID();
 
-    for(auto& wm_layer : this->wm_layers)
+    ilm_layerSetVisibility(layer, ILM_TRUE);
+
+    /* for(auto& wm_layer : this->wm_layers)
     {
         if(wm_layer->hasLayerID(layer))
         {
             LayerState ls = wm_layer->getLayerState();
             ls.addLayer(layer);;
         }
-    }
+    } */
 
     // Move foreground from back ground layer
-    for(auto& wm_layer : this->wm_layers)
+    /* for(auto& wm_layer : this->wm_layers)
     {
         if(wm_layer->layerName() == "BackGroundLayer")
         {
@@ -580,7 +582,7 @@ WMError LayerControl::makeVisible(const shared_ptr<WMClient> client)
             }
             break;
         }
-    }
+    } */
 
     return ret;
 }
@@ -588,32 +590,75 @@ WMError LayerControl::makeVisible(const shared_ptr<WMClient> client)
 WMError LayerControl::makeInvisible(const shared_ptr<WMClient> client)
 {
     WMError ret = WMError::SUCCESS;
-    // Don't check here the client is not nullptr
-    unsigned layer = client->layerID();
+    unsigned layer = client->layerID(); // Don't check here the client is not nullptr
+
+    /* bool mv_ok = this->mvBackGround(client);
+
+    if(!mv_ok)
+    {
+        ilm_layerSetVisibility(layer, ILM_FALSE);
+    } */
+
+    ilm_layerSetDestinationRectangle(layer, 0, 0, 0, 0);
 
-    for(auto& wm_layer : this->wm_layers)
+    /* for(auto& wm_layer : this->wm_layers)
     {
         if(wm_layer->hasLayerID(layer))
         {
             LayerState ls = wm_layer->getLayerState();
             ls.removeLayer(layer);;
         }
-    }
+    } */
 
-    // Move foreground from back ground layer
-    for(auto& wm_layer : this->wm_layers)
+
+
+    return ret;
+}
+
+/* bool LayerControl::mvBackGround(const shared_ptr<WMClient> client)
+{
+    bool ret = false;
+
+    // Move background from foreground layer
+    auto bg = this->getWMLayer("BackGroundLayer");
+    if(bg != nullptr)
     {
-        if(wm_layer->layerName() == "BackGroundLayer")
+        unsigned layer = client->layerID();
+        if(bg->hasRole(client->role()))
         {
-            if(wm_layer->hasRole(client->role()))
-            {
-                LayerState ls = wm_layer->getLayerState();
-                ls.addLayer(layer);
-            }
-            break;
+            LayerState bg_ls = bg->getLayerState();
+            bg_ls.addLayer(layer);
+            auto wm_layer = this->getWMLayer(layer);
+            LayerState ls = wm_layer->getLayerState();
+            ls.removeLayer(layer);
         }
+        ret = true;
     }
+    return ret;
+}
 
+bool LayerControl::mvForeGround(const shared_ptr<WMClient> client)
+{
+    bool ret = false;
+
+    // Move foreground from foreground layer
+    auto bg = this->getWMLayer("BackGroundLayer");
+    if(bg != nullptr)
+    {
+        unsigned layer = client->layerID();
+        if(bg->hasRole(client->role()))
+        {
+            LayerState bg_ls = bg->getLayerState();
+            bg_ls.removeLayer(layer);
+            auto wm_layer = this->getWMLayer(layer);
+            LayerState ls = wm_layer->getLayerState();
+            ls.addLayer(layer);
+        }
+        ret = true;
+    }
     return ret;
 }
+
+*/
+
 } // namespace wm
\ No newline at end of file