#include <systemd/sd-event.h>
}
-typedef struct wmClientCtxt
+typedef struct WMClientCtxt
{
std::string name;
std::string role;
- wmClientCtxt(const char *appName, const char* appRole)
+ WMClientCtxt(const char *appName, const char* appRole)
{
name = appName;
- role = role;
+ role = appRole;
}
-} wmClientCtxt;
+} WMClientCtxt;
struct afb_instance
{
static bool checkFirstReq(afb_req req)
{
- wmClientCtxt *ctxt = (wmClientCtxt *)afb_req_context_get(req);
+ WMClientCtxt *ctxt = (WMClientCtxt *)afb_req_context_get(req);
return (ctxt) ? false : true;
}
static void cbRemoveClientCtxt(void *data)
{
- wmClientCtxt *ctxt = (wmClientCtxt *)data;
+ WMClientCtxt *ctxt = (WMClientCtxt *)data;
if (ctxt == nullptr)
{
return;
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);
bool isFirstReq = checkFirstReq(req);
if (!isFirstReq)
{
- wmClientCtxt *ctxt = (wmClientCtxt *)afb_req_context_get(req);
+ WMClientCtxt *ctxt = (WMClientCtxt *)afb_req_context_get(req);
HMI_DEBUG("wm", "You're %s.", ctxt->name.c_str());
if (ctxt->name != std::string(a_drawing_name))
{
if (isFirstReq)
{
- wmClientCtxt *ctxt = new wmClientCtxt(afb_req_get_application_id(req), a_drawing_name);
+ WMClientCtxt *ctxt = new WMClientCtxt(afb_req_get_application_id(req), a_drawing_name);
HMI_DEBUG("wm", "create session for %s", ctxt->name.c_str());
afb_req_session_set_LOA(req, 1);
afb_req_context_set(req, ctxt, cbRemoveClientCtxt);
}
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;
}
}
}
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;
}
}
}
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;
}
}
return;
}
afb_req_success(req, NULL, "success");
-
- g_afb_instance->app.subscribeEventForApp(afb_req_get_application_id(req), req, event_name);
}
catch (std::exception &e)
{