diff options
author | Kazumasa Mitsunari <knimitz@witz-inc.co.jp> | 2018-09-08 18:18:50 +0900 |
---|---|---|
committer | Kazumasa Mitsunari <knimitz@witz-inc.co.jp> | 2018-09-08 18:18:50 +0900 |
commit | 10ffb4cc3ac196e110a67e82b6b4d63499443e69 (patch) | |
tree | 7d7280d8e65ecc5cfd30077af702ee4e5dddf655 | |
parent | 1b5e2af2499199c8fa763fbe9769bd0bc2ed8c94 (diff) |
Change size (0, 0) if layer turns invisible
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
-rw-r--r-- | src/wm_layer_control.cpp | 79 |
1 files 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<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 |