fix for als2019 8.0.0
[apps/agl-service-windowmanager.git] / src / wm_layer.cpp
index 66fb0a2..e1454f8 100644 (file)
@@ -66,6 +66,12 @@ void LayerState::removeLayer(unsigned layer)
     this->render_order.erase(fwd_itr, this->render_order.end());
 }
 
+bool LayerState::hasLayer(unsigned layer)
+{
+    auto itr = std::find(this->render_order.begin(), this->render_order.end(), layer);
+    return (itr != this->render_order.end()) ? true : false;
+}
+
 void LayerState::attachAppToArea(const string& app, const string& area)
 {
     this->area2appid[area] = app;
@@ -96,6 +102,7 @@ WMLayer::WMLayer(json_object* j, unsigned wm_layer_id) : tmp_state(), state(), w
     this->role_list = jh::getStringFromJson(j, "role");
     this->id_begin = static_cast<unsigned>(jh::getIntFromJson(j, "id_range_begin"));
     this->id_end = static_cast<unsigned>(jh::getIntFromJson(j, "id_range_end"));
+    this->screen = jh::getIntFromJson(j, "screen"); // screen is not defined in layers.json, screen is set to 0
 
     if (name.empty())
     {
@@ -183,6 +190,11 @@ void WMLayer::removeLayerFromState(unsigned layer)
     this->tmp_state.removeLayer(layer);
 }
 
+bool WMLayer::hasLayerFromState(unsigned layer)
+{
+    this->tmp_state.hasLayer(layer);
+}
+
 void WMLayer::attachAppToArea(const string& app, const string& area)
 {
     this->tmp_state.attachAppToArea(app, area);
@@ -250,9 +262,11 @@ void WMLayer::undo()
 void WMLayer::dump()
 {
     DUMP("===== wm layer status =====");
-    DUMP("Layer :%s", this->name.c_str());
-    this->tmp_state.dump();
+    DUMP("Layer :%s on screen %d", this->name.c_str(), this->screen);
+    DUMP("  [Current]");
     this->state.dump();
+    DUMP("  [To be]");
+    this->tmp_state.dump();
     DUMP("===== wm layer status end =====");
 
 }