diff options
Diffstat (limited to 'src/wm_client.cpp')
-rw-r--r-- | src/wm_client.cpp | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/src/wm_client.cpp b/src/wm_client.cpp index 4aecbf4..7245549 100644 --- a/src/wm_client.cpp +++ b/src/wm_client.cpp @@ -71,6 +71,23 @@ WMClient::WMClient(const string &appid, const string &role) } } +WMClient::WMClient(const string &appid, unsigned layer, + const string& layer_name, unsigned surface, const string &role) + : id(appid), layer(layer), wm_layer_name(layer_name), + role2surface(0) +{ + role2surface[role] = surface; + for (auto x : kWMEvents) + { +#if GTEST_ENABLED + string ev = x; +#else + afb_event ev = afb_daemon_make_event(x.c_str()); +#endif + evname2afb_event[x] = ev; + } +} + string WMClient::appID() const { return this->id; @@ -114,23 +131,13 @@ const string& WMClient::getWMLayerName() void WMClient::setRole(const string& role) { + this->role_list.clear(); this->role_list.push_back(role); } -/** - * Set layerID the client belongs to - * - * This function set layerID the client belongs to. - * But this function may not used because the layer should be fixed at constructor. - * So this function will be used to change layer by some reasons. - * - * @param unsigned[in] layerID - * @return None - * @attention WMClient can't have multiple layer - */ -void WMClient::registerLayer(unsigned layer) +void WMClient::appendRole(const string& role) { - this->layer = layer; + this->role_list.push_back(role); } /** |