{
E_Service_Launcher *lc;
E_Service_Launcher *runner;
+ E_Client *target_ec = NULL;
+ enum tws_service_launcher_direction launch_direction = 0;
lc = wl_resource_get_user_data(res_tws_lc);
EINA_SAFETY_ON_NULL_RETURN(lc);
ELOGF("LAUNCHER_SRV", "LAUNCH_DONE(%d) target:%p", lc->ec, serial, lc->target.ec);
+ target_ec = lc->target.ec;
+ launch_direction = lc->direction;
+
//check current state of lc
runner = _launcher_handler_launcher_runner_get();
if (runner != lc)
_launcher_handler_launcher_pre_runner_set(lc);
_launcher_state_set(lc, LAUNCHER_STATE_DONE);
- ELOGF("LAUNCH", "SHOW real win by launcher service", lc->ec);
- e_comp_object_signal_emit(lc->ec->frame, "e,action,launch_real,done", "e");
+ if (launch_direction == TWS_SERVICE_LAUNCHER_DIRECTION_FORWARD)
+ {
+ if (target_ec && !e_object_is_del(E_OBJECT(target_ec)))
+ {
+ ELOGF("LAUNCH", "SHOW real win (win:0x%08zx, ec:%p) by launcher service.", lc->ec, e_client_util_win_get(target_ec), target_ec);
+ e_comp_object_signal_emit(target_ec->frame, "e,action,launch_real,done", "e");
+ }
+ }
}
static void