From 1191112d543676da171e38daf33909eb4f30aff3 Mon Sep 17 00:00:00 2001 From: Marcus Fritzsch Date: Wed, 30 Aug 2017 16:04:54 +0200 Subject: [PATCH 1/1] app: visibility setting work around... peak software enfineering right here!!1 Signed-off-by: Marcus Fritzsch --- src/app.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/app.cpp b/src/app.cpp index c672052..b3e8587 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include namespace wm { @@ -341,8 +342,7 @@ char const *App::activate_surface(uint32_t surface_id) { // Set all others invisible for (auto &i : this->controller->surfaces) { auto &si = this->controller->sprops[i.second->id]; - if (si.visibility == 1 && si.id != s->id && - int(si.id) != this->layers.main_surface) { + if (si.id != s->id && int(si.id) != this->layers.main_surface) { i.second->set_visibility(0); } } @@ -352,6 +352,17 @@ char const *App::activate_surface(uint32_t surface_id) { this->controller->commit_changes(); this->display->flush(); + auto set_vis = [&s, this](int id, int vis) { + using namespace std::chrono_literals; + + std::this_thread::sleep_for(100ms); + s->set_visibility(vis); + this->controller->commit_changes(); + this->display->roundtrip(); + }; + set_vis(s->id, 0); + set_vis(s->id, 1); + // Current active surface is the first in last_active this->last_active.push_front(s->id); /// // XXX: I am not sure I even need 5 elements... -- 2.16.6