app/api: add demo_activate_all()
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Thu, 3 Aug 2017 10:38:51 +0000 (12:38 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 8 Aug 2017 15:24:00 +0000 (17:24 +0200)
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
generate-binding-glue.py
src/app.cpp

index 7aaad36..43bc742 100644 (file)
@@ -108,6 +108,7 @@ API = {
                 ],
             },
             { 'name': 'demo_activate_surface', 'args': [ { 'name': 'surfaceid', 'type': 'uint32_t', 'jtype': 'int' } ] },
+            { 'name': 'demo_activate_all' },
             { 'name': 'debug_status', },
             { 'name': 'debug_layers', },
             { 'name': 'debug_surfaces', },
index 57d1b17..88ee0fa 100644 (file)
@@ -330,15 +330,16 @@ char const *App::activate_surface(uint32_t surface_id) {
 
    // Make it visible, no (or little effect) if already visible
    auto &s = this->controller->surfaces[surface_id];
-   s->set_visibility(1);
 
    // 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.visibility == 1 && si.id != s->id &&
+          int(si.id) != this->layers.main_surface) {
          i.second->set_visibility(0);
       }
    }
+   s->set_visibility(1);
 
    // commit changes
    this->controller->commit_changes();
@@ -438,6 +439,15 @@ binding_api::result_type binding_api::demo_activate_surface(
    return Ok(json_object_new_object());
 }
 
+binding_api::result_type binding_api::demo_activate_all() {
+   for (auto &s: this->app->controller->surfaces) {
+      s.second->set_visibility(1);
+   }
+   this->app->controller->commit_changes();
+   this->app->display->flush();
+   return Ok(json_object_new_object());
+}
+
 //                  _             _ _            _                 _
 //   ___ ___  _ __ | |_ _ __ ___ | | | ___ _ __ | |__   ___   ___ | | _____
 //  / __/ _ \| '_ \| __| '__/ _ \| | |/ _ \ '__|| '_ \ / _ \ / _ \| |/ / __|