aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/wm_layer.cpp21
-rw-r--r--src/wm_layer.hpp1
-rw-r--r--src/wm_layer_control.cpp3
3 files changed, 21 insertions, 4 deletions
diff --git a/src/wm_layer.cpp b/src/wm_layer.cpp
index 154d874..28e1cd9 100644
--- a/src/wm_layer.cpp
+++ b/src/wm_layer.cpp
@@ -86,13 +86,21 @@ void LayerState::setArea(const string& app, const string& area)
void LayerState::dump()
{
- std::string str;
+ std::string ids, apps;
for(const auto& ro : this->render_order)
{
- str += std::to_string(ro);
- str += ",";
+ ids += std::to_string(ro);
+ ids += ",";
}
- DUMP(" render order : %s", str.c_str());
+ for(const auto& area : this->area2appid)
+ {
+ apps += area.first;
+ apps += ":";
+ apps += area.second;
+ apps += ",";
+ }
+ DUMP(" render order : %s", ids.c_str());
+ DUMP(" area, app : %s", apps.c_str());
}
WMLayer::WMLayer(json_object* j, unsigned uuid) : tmp_state(), state(), uuid(uuid)
@@ -191,6 +199,11 @@ void WMLayer::removeLayerFromState(unsigned layer)
this->tmp_state.removeLayer(layer);
}
+void WMLayer::setAreaToState(const string& app, const string& area)
+{
+ this->tmp_state.setArea(app, area);
+}
+
void WMLayer::appendArea(const string& area)
{
this->area_list.push_back(area);
diff --git a/src/wm_layer.hpp b/src/wm_layer.hpp
index 65182b0..c291151 100644
--- a/src/wm_layer.hpp
+++ b/src/wm_layer.hpp
@@ -78,6 +78,7 @@ class WMLayer
// Manipulation
void addLayerToState(unsigned layer);
void removeLayerFromState(unsigned layer);
+ void setAreaToState(const std::string& app, const std::string& area);
void terminateApp(unsigned layer);
WMError commitChange();
diff --git a/src/wm_layer_control.cpp b/src/wm_layer_control.cpp
index b4e53c8..4cfedd9 100644
--- a/src/wm_layer_control.cpp
+++ b/src/wm_layer_control.cpp
@@ -387,8 +387,11 @@ WMError LayerControl::layoutChange(const WMAction& action)
{
if(wm_layer->hasLayerID(layer))
{
+ wm_layer->setAreaToState(action.client->appID(), action.area);
+ /* TODO: manipulate state directly
LayerState ls = wm_layer->getLayerState();
ls.setArea(action.client->appID(), action.area);
+ wm_layer->dump(); */
}
}