App: cleanup requestSurface API method.
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Mon, 4 Sep 2017 16:00:24 +0000 (18:00 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Mon, 4 Sep 2017 16:00:32 +0000 (18:00 +0200)
* Use lookup_id().
* Do not call activate_surface() as the surface does not yet exist.

Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
src/app.cpp
src/app.hpp

index 89b3f29..527fe01 100644 (file)
@@ -515,17 +515,17 @@ result<int> App::request_surface(char const *drawing_name) {
       return Err<int>("Drawing name does not match any role");
    }
 
-   auto rname = this->id_alloc.lookup(drawing_name);
+   auto rname = this->lookup_id(drawing_name);
    if (!rname) {
       // name does not exist yet, allocate surface id...
       auto id = int(this->id_alloc.generate_id(drawing_name));
       this->layers.add_surface(id, lid.value());
 
-      // XXX: you should fix this!
+      // XXX: we set the main_surface[_name] here and now,
+      // not sure if we want this, but it worked so far.
       if (!this->layers.main_surface_name.empty() &&
           this->layers.main_surface_name == drawing_name) {
          this->layers.main_surface = id;
-         this->activate_surface(drawing_name);
          logdebug("Set main_surface id to %u", id);
       }
 
index 370c65d..79498c2 100644 (file)
@@ -113,6 +113,7 @@ struct App {
    layouts_type layouts;
    layer_map layers;
 
+   // ID allocation and proxy methods for lookup
    struct id_allocator id_alloc;
    optional<unsigned> lookup_id(char const *name) {
       return this->id_alloc.lookup(std::string(name));