summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/app.cpp6
-rw-r--r--src/app.hpp1
2 files changed, 4 insertions, 3 deletions
diff --git a/src/app.cpp b/src/app.cpp
index 89b3f29..527fe01 100644
--- a/src/app.cpp
+++ b/src/app.cpp
@@ -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);
}
diff --git a/src/app.hpp b/src/app.hpp
index 370c65d..79498c2 100644
--- a/src/app.hpp
+++ b/src/app.hpp
@@ -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));