X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fapp.cpp;fp=src%2Fapp.cpp;h=9ddfde44e4c3fda541082a7269cde9937fed784e;hb=b3f280dd0264f05626d5bc7d896f4b33c9f01e3d;hp=82701b7de8b6c9ca4081b7bdac2f71a68e6667a3;hpb=13096fe59f29a1e3710c3d975d08a344af40e6c6;p=apps%2Fagl-service-windowmanager-2017.git diff --git a/src/app.cpp b/src/app.cpp index 82701b7..9ddfde4 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -724,6 +724,35 @@ void App::activate(int id) { this->controller->surfaces[id]->set_visibility(1); char const *label = this->lookup_name(id).value_or("unknown-name").c_str(); + + // FOR CES DEMO >>> + if ((0 == strcmp(label, "Radio")) + || (0 == strcmp(label, "MediaPlayer")) + || (0 == strcmp(label, "Navigation"))) { + for (auto i = surface_bg.begin(); i != surface_bg.end(); ++i) { + if (id == *i) { + // Remove id + this->surface_bg.erase(i); + + // Remove from BG layer (999) + HMI_DEBUG("wm", "Remove %s(%d) from BG layer", label, id); + this->controller->layers[999]->remove_surface( + this->controller->surfaces[id].get()); + + // Add to FG layer (1001) + HMI_DEBUG("wm", "Add %s(%d) to FG layer", label, id); + this->controller->layers[1001]->add_surface( + this->controller->surfaces[id].get()); + + for (int j : this->surface_bg) { + HMI_DEBUG("wm", "Stored id:%d", j); + } + break; + } + } + } + // <<< FOR CES DEMO + this->emit_visible(label); this->emit_activated(label); } @@ -732,9 +761,36 @@ void App::activate(int id) { void App::deactivate(int id) { auto ip = this->controller->sprops.find(id); if (ip != this->controller->sprops.end() && ip->second.visibility != 0) { - this->controller->surfaces[id]->set_visibility(0); char const *label = this->lookup_name(id).value_or("unknown-name").c_str(); + + // FOR CES DEMO >>> + if ((0 == strcmp(label, "Radio")) + || (0 == strcmp(label, "MediaPlayer")) + || (0 == strcmp(label, "Navigation"))) { + + // Store id + this->surface_bg.push_back(id); + + // Remove from FG layer (1001) + HMI_DEBUG("wm", "Remove %s(%d) from FG layer", label, id); + this->controller->layers[1001]->remove_surface( + this->controller->surfaces[id].get()); + + // Add to BG layer (999) + HMI_DEBUG("wm", "Add %s(%d) to BG layer", label, id); + this->controller->layers[999]->add_surface( + this->controller->surfaces[id].get()); + + for (int j : surface_bg) { + HMI_DEBUG("wm", "Stored id:%d", j); + } + } + else { + this->controller->surfaces[id]->set_visibility(0); + } + // <<< FOR CES DEMO + this->emit_deactivated(label); this->emit_invisible(label); }