Rename app -> window_manager
[apps/agl-service-windowmanager.git] / src / main.cpp
index fe73b69..feb2124 100644 (file)
 #include <algorithm>
 #include <mutex>
 #include <json.h>
-#include <json.hpp>
-#include "app.hpp"
-#include "result.hpp"
+#include "../include/json.hpp"
+#include "window_manager.hpp"
 #include "json_helper.hpp"
-#include "util.hpp"
 #include "wayland_ivi_wm.hpp"
 
 extern "C"
@@ -197,6 +195,18 @@ static void cbRemoveClientCtxt(void *data)
     if (pSid)
     {
         auto sid = *pSid;
+        auto o_state = *g_afb_instance->app.layers.get_layout_state(sid);
+        if (o_state != nullptr)
+        {
+            if (o_state->main == sid)
+            {
+                o_state->main = -1;
+            }
+            else if (o_state->sub == sid)
+            {
+                o_state->sub = -1;
+            }
+        }
         g_afb_instance->app.id_alloc.remove_id(sid);
         g_afb_instance->app.layers.remove_surface(sid);
         g_afb_instance->app.controller->sprops.erase(sid);
@@ -364,7 +374,8 @@ void windowmanager_activatesurface(afb_req req) noexcept
     }
     catch (std::exception &e)
     {
-        HMI_WARNING("wm", "failed", "Uncaught exception while calling activatesurface: %s", e.what());
+        HMI_WARNING("wm", "failed: Uncaught exception while calling activatesurface: %s", e.what());
+        g_afb_instance->app.exeptionProcessForTransition();
         return;
     }
 }
@@ -404,7 +415,8 @@ void windowmanager_deactivatesurface(afb_req req) noexcept
     }
     catch (std::exception &e)
     {
-        HMI_WARNING("wm", "Uncaught exception while calling deactivatesurface: %s", e.what());
+        HMI_WARNING("wm", "failed: Uncaught exception while calling deactivatesurface: %s", e.what());
+        g_afb_instance->app.exeptionProcessForTransition();
         return;
     }
 }
@@ -436,7 +448,8 @@ void windowmanager_enddraw(afb_req req) noexcept
     }
     catch (std::exception &e)
     {
-        HMI_WARNING("wm", "failed", "Uncaught exception while calling enddraw: %s", e.what());
+        HMI_WARNING("wm", "failed: Uncaught exception while calling enddraw: %s", e.what());
+        g_afb_instance->app.exeptionProcessForTransition();
         return;
     }
 }