App: controller hooks impl
[staging/windowmanager.git] / src / app.cpp
index 3085c61..42f6f16 100644 (file)
@@ -678,7 +678,8 @@ result<int> App::api_request_surface(char const *drawing_name) {
 }
 
 void App::activate(int id) {
-   if (this->controller->sprops[id].visibility == 0) {
+   auto ip = this->controller->sprops.find(id);
+   if (ip != this->controller->sprops.end() && ip->second.visibility == 0) {
       this->controller->surfaces[id]->set_visibility(1);
       char const *label =
          this->lookup_name(id).value_or("unknown-name").c_str();
@@ -688,7 +689,8 @@ void App::activate(int id) {
 }
 
 void App::deactivate(int id) {
-   if (this->controller->sprops[id].visibility != 0) {
+   auto ip = this->controller->sprops.find(id);
+   if (ip != this->controller->sprops.end() && ip->second.visibility != 0) {
       this->controller->surfaces[id]->set_visibility(0);
       char const *label =
          this->lookup_name(id).value_or("unknown-name").c_str();
@@ -763,4 +765,10 @@ void controller_hooks::surface_removed(uint32_t surface_id) {
    this->app->surface_removed(surface_id);
 }
 
+void controller_hooks::surface_visibility(uint32_t surface_id, uint32_t v) {
+}
+
+void controller_hooks::surface_destination_rectangle(uint32_t surface_id, uint32_t x, uint32_t y, uint32_t w, uint32_t h) {
+}
+
 }  // namespace wm