App: be more thorough when checking surface-associated LayoutState
[staging/windowmanager.git] / src / app.cpp
index 59b762d..6708706 100644 (file)
@@ -493,7 +493,13 @@ char const *App::deactivate_surface(char const *drawing_name) {
       return "Cannot deactivate main_surface";
    }
 
-   struct LayoutState &state = **this->layers.get_layout_state(*surface_id);
+   auto o_state = *this->layers.get_layout_state(*surface_id);
+
+   if (! o_state) {
+      return "Could not find layer for surface";
+   }
+
+   struct LayoutState &state = *o_state;
 
    if (state.main == -1) {
       return "No surface active";