// --------------------------------------------------------
EINTERN Eina_Bool
e_tzsh_shared_widget_launch_prepare_send(E_Client *callee_ec,
- uint32_t state)
+ uint32_t state,
+ uint32_t serial)
{
E_Policy_Wl_Tzsh_Client *tzsh_client;
Eina_List *l;
if (tzsh_client->tzsh->ec != callee_ec) continue;
tws_shared_widget_launch_send_prepare_shared_widget(tzsh_client->res_tzsh_client,
- state);
+ state,
+ serial);
res = EINA_TRUE;
break;
_tzsh_swl_iface_cb_prepare_shared_widget_done(struct wl_client *client,
struct wl_resource *res_tzsh_swl,
const char *shared_widget_info,
- uint32_t state)
+ uint32_t state,
+ uint32_t serial)
{
E_Policy_Wl_Tzsh_Client *tzsh_client;
// send prepare event to caller
e_service_launcher_prepare_send_with_shared_widget_info(tzsh_client->tzsh->ec,
shared_widget_info,
- state);
+ state,
+ serial);
}
static const struct tws_shared_widget_launch_interface _tzsh_swl_iface =
_launcher_launched_ec_set(lc, NULL);
_launcher_target_ec_set(lc, target_ec);
+ lc->direction = TWS_SERVICE_LAUNCHER_DIRECTION_FORWARD;
+ lc->serial = wl_display_next_serial(e_comp_wl->wl.disp);
+
sent = e_tzsh_shared_widget_launch_prepare_send(target_ec,
- TWS_SHARED_WIDGET_LAUNCH_PREPARE_STATE_WIDGET_HIDE);
+ TWS_SHARED_WIDGET_LAUNCH_PREPARE_STATE_WIDGET_HIDE,
+ lc->serial);
if (!sent)
{
ELOGF("LAUNCHER_SRV", "Failed to send event(PREPARE:FORWARD)", lc->ec);
E_Client *target_ec,
E_Vis_Job_Type job_type)
{
- int x, y;
Eina_Bool sent = EINA_FALSE;
EINA_SAFETY_ON_NULL_RETURN_VAL(lc, EINA_FALSE);
_launcher_launched_ec_set(lc, NULL);
_launcher_target_ec_set(lc, target_ec);
- lc->serial = wl_display_next_serial(e_comp_wl->wl.disp);
lc->direction = TWS_SERVICE_LAUNCHER_DIRECTION_BACKWARD;
- e_client_pos_get(target_ec, &x, &y);
+ lc->serial = wl_display_next_serial(e_comp_wl->wl.disp);
sent = e_tzsh_shared_widget_launch_prepare_send(target_ec,
- TWS_SHARED_WIDGET_LAUNCH_PREPARE_STATE_WIDGET_HIDE);
+ TWS_SHARED_WIDGET_LAUNCH_PREPARE_STATE_WIDGET_HIDE,
+ lc->serial);
// fail to send protocol event
if (!sent)
(lc->with_swl))
{
e_tzsh_shared_widget_launch_prepare_send(lc->target.ec,
- TWS_SHARED_WIDGET_LAUNCH_PREPARE_STATE_WIDGET_SHOW);
+ TWS_SHARED_WIDGET_LAUNCH_PREPARE_STATE_WIDGET_SHOW,
+ lc->serial);
return;
}
{
if (lc->with_swl)
e_tzsh_shared_widget_launch_prepare_send(lc->target.ec,
- TWS_SHARED_WIDGET_LAUNCH_PREPARE_STATE_WIDGET_SHOW);
+ TWS_SHARED_WIDGET_LAUNCH_PREPARE_STATE_WIDGET_SHOW,
+ lc->serial);
_launcher_post_backward(lc, EINA_TRUE);
}
EINTERN void
e_service_launcher_prepare_send_with_shared_widget_info(E_Client *target_ec,
const char *shared_widget_info,
- uint32_t state)
+ uint32_t state,
+ uint32_t serial)
{
E_Service_Launcher *lc = NULL;
Eina_Bool sent;
Eina_Iterator *hash_iter;
Eina_Bool found = EINA_FALSE;
+ EINA_SAFETY_ON_NULL_RETURN(_laundler);
+
/* look for launcher service object which has given target_ec */
hash_iter = eina_hash_iterator_data_new(_laundler->launcher_hash);
EINA_ITERATOR_FOREACH(hash_iter, lc)
{
if (lc->target.ec != target_ec) continue;
+ if (lc->serial != serial) continue;
found = EINA_TRUE;
break;
}