Update wm_layer: Set Area to state
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Mon, 10 Sep 2018 09:09:49 +0000 (18:09 +0900)
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>
Mon, 10 Sep 2018 09:09:49 +0000 (18:09 +0900)
Change-Id: I039ac972ff2a10300938e50aae0ed57ea8606902
Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
src/wm_layer.cpp
src/wm_layer.hpp
src/wm_layer_control.cpp

index 154d874..28e1cd9 100644 (file)
@@ -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);
index 65182b0..c291151 100644 (file)
@@ -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();
 
index b4e53c8..4cfedd9 100644 (file)
@@ -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(); */
         }
     }