app/wayland: move late-tasks to App
[staging/windowmanager.git] / src / wayland.hpp
index b0b3674..85423fd 100644 (file)
@@ -279,10 +279,6 @@ struct controller : public wayland_proxy<struct ivi_controller> {
    layer_map_type layers;
    screen_map_type screens;
 
-   typedef std::pair<char const *, std::function<void(struct controller *)>>
-      name_task_pair;
-   std::vector<name_task_pair> pending;
-
    size output_size;
 
    wm::controller_hooks *chooks;
@@ -294,9 +290,13 @@ struct controller : public wayland_proxy<struct ivi_controller> {
    void add_proxy_to_id_mapping(struct wl_output *p, uint32_t id);
    void remove_proxy_to_id_mapping(struct wl_output *p);
 
-   void add_task(char const *name,
-                 std::function<void(struct controller *)> &&f);
-   void execute_pending();
+   bool surface_exists(uint32_t id) const {
+      return this->surfaces.find(id) != this->surfaces.end();
+   }
+
+   bool layer_exists(uint32_t id) const {
+      return this->layers.find(id) != this->layers.end();
+   }
 
    controller(struct wl_registry *r, uint32_t name, uint32_t version);