aboutsummaryrefslogtreecommitdiffstats
path: root/src/wm_layer.cpp
diff options
context:
space:
mode:
authorKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-31 18:35:31 +0900
committerKazumasa Mitsunari <knimitz@witz-inc.co.jp>2018-08-31 18:35:44 +0900
commit915faae5e2901f2112a680586582a282c44dc401 (patch)
tree075fe49f72bfff3b9386765b0270882004e15101 /src/wm_layer.cpp
parenta3ed61b74c04da98756af1f583e72b53891adc58 (diff)
Bug Fix : wm_layer
Change-Id: I6048e6e5b98fcea167e5a0bc03e7f0e9761ff8af Signed-off-by: Kazumasa Mitsunari <knimitz@witz-inc.co.jp>
Diffstat (limited to 'src/wm_layer.cpp')
-rw-r--r--src/wm_layer.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/wm_layer.cpp b/src/wm_layer.cpp
index d74418a..7f8dbd9 100644
--- a/src/wm_layer.cpp
+++ b/src/wm_layer.cpp
@@ -26,6 +26,8 @@ using std::string;
using std::vector;
using std::unordered_map;
+#define BG_LAYER_NAME "BackGroundLayer"
+
namespace wm
{
@@ -88,7 +90,7 @@ WMLayer::WMLayer(json_object* j) : before_state(), state()
this->id_begin = static_cast<unsigned>(jh::getIntFromJson(j, "id_range_begin"));
this->id_end = static_cast<unsigned>(jh::getIntFromJson(j, "id_range_end"));
- if (name.size() == 0 || type || this->id_begin == 0 || this->id_end == 0)
+ if (name.size() == 0 || !type)
{
HMI_ERROR("Parse Error!!");
exit(1);
@@ -109,7 +111,15 @@ unsigned WMLayer::getNewLayerID(const string& role)
// generate new layer id;
if(this->hasRole(role))
{
- ret = this->id_list.back() + 1;
+ if(this->id_list.size() == 0)
+ {
+ ret = this->idBegin();
+ this->id_list.push_back(ret);
+ }
+ else
+ {
+ ret = this->id_list.back() + 1;
+ }
HMI_INFO("Generate new id: %d", ret);
}
else
@@ -181,10 +191,13 @@ bool WMLayer::hasLayerID(unsigned id)
bool WMLayer::hasRole(const string& role)
{
+ // TODO : use virtual to avoid compare
+ if(this->name == BG_LAYER_NAME)
+ return false;
auto re = std::regex(this->role_list);
if (std::regex_match(role, re))
{
- HMI_DEBUG("role %s matches layer %d", role.c_str(), this->name.c_str());
+ HMI_DEBUG("role %s matches layer %s", role.c_str(), this->name.c_str());
return true;
}
return false;