From 10ffb4cc3ac196e110a67e82b6b4d63499443e69 Mon Sep 17 00:00:00 2001 From: Kazumasa Mitsunari Date: Sat, 8 Sep 2018 18:18:50 +0900 Subject: Change size (0, 0) if layer turns invisible Signed-off-by: Kazumasa Mitsunari --- src/wm_layer_control.cpp | 79 +++++++++++++++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 17 deletions(-) diff --git a/src/wm_layer_control.cpp b/src/wm_layer_control.cpp index cf3b475..0632085 100644 --- a/src/wm_layer_control.cpp +++ b/src/wm_layer_control.cpp @@ -559,17 +559,19 @@ WMError LayerControl::makeVisible(const shared_ptr 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 client) } break; } - } + } */ return ret; } @@ -588,32 +590,75 @@ WMError LayerControl::makeVisible(const shared_ptr client) WMError LayerControl::makeInvisible(const shared_ptr 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 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 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 -- cgit 1.2.3-korg