{
E_Client *prov_ec = NULL;
Eina_List *tzrs_provs, *l;
+ E_Service_Launcher *lc;
if (!rsm_consumer_ec->remote_surface.consumer) return NULL;
if (prov_ec->visible) continue;
if (evas_object_visible_get(prov_ec->frame)) continue;
if (prov_ec->comp_data->mapped) continue;
+ if (!(lc = _launcher_handler_launcher_find(prov_ec))) continue;
+ if (!lc->launched_ec) continue;
ELOGF("LAUNCHER_SRV", "Found prov_ec:%p", rsm_consumer_ec, prov_ec);
break;
{
if (runner->with_swl)
{
- //caller is gone before replying prepare_done
+ //callee is gone before replying prepare_done
if (runner->state == LAUNCHER_STATE_WAIT_RESPONSE_FROM_CALLEE)
- _launcher_data_reset(runner);
+ {
+ if (runner->direction == TWS_SERVICE_LAUNCHER_DIRECTION_FORWARD)
+ _launcher_post_forward(runner, EINA_FALSE);
+ else if (runner->direction == TWS_SERVICE_LAUNCHER_DIRECTION_BACKWARD)
+ _launcher_post_backward(runner, EINA_FALSE);
+
+ _launcher_state_set(runner, LAUNCHER_STATE_IDLE);
+ _launcher_launched_ec_set(runner, NULL);
+
+ _launcher_handler_launcher_runner_unset(runner);
+ _launcher_handler_launcher_pre_runner_unset(runner);
+
+ runner->direction = 0;
+ runner->with_swl = 0;
+ }
}
}
}