Eina_Bool is_cursor;
Eina_Bool mouse_in;
Eina_Bool pointer_enter_sent;
+ int zone_id;
Eina_Stringshare *icccm_name;
Eina_Stringshare *netwm_name;
Eina_Stringshare *icccm_title;
return iec->pointer_enter_sent;
}
+
+EINTERN void e_input_thread_client_zone_id_set(E_Input_Thread_Client *iec, int zone_id)
+{
+ EINA_SAFETY_ON_NULL_RETURN(iec);
+
+ iec->zone_id = zone_id;
+ ICINF("[%s] iec(%p), ec(%p), zone_id(%d)\n", __func__, iec, iec->ec, iec->zone_id);
+}
+
+EINTERN int e_input_thread_client_zone_id_get(E_Input_Thread_Client *iec)
+{
+ EINA_SAFETY_ON_NULL_RETURN_VAL(iec, -1);
+
+ return iec->zone_id;
+}
bool is_video;
Eina_Bool deleted;
Eina_Bool is_cursor;
+ int zone_id;
Evas_Object *frame;
int x, y, w, h;
EINTERN void e_input_thread_client_pointer_enter_sent_set(E_Input_Thread_Client *iec, Eina_Bool sent);
EINTERN Eina_Bool e_input_thread_client_pointer_enter_sent_get(E_Input_Thread_Client *iec);
+EINTERN void e_input_thread_client_zone_id_set(E_Input_Thread_Client *iec, int zone_id);
+EINTERN int e_input_thread_client_zone_id_get(E_Input_Thread_Client *iec);
+
#endif
e_zone_client_set_event_emit(zone, ec);
}
+static void
+_e_policy_wl_input_thread_zone_id_set(void *data)
+{
+ E_Input_Thread_Request_EClient_Data *ec_data = data;
+ EINA_SAFETY_ON_NULL_RETURN(ec_data);
+
+ ICINF("[input thread|%s] ec(%p), zone_id(%d)\n", __func__, ec_data->ec, ec_data->zone_id);
+ e_input_thread_client_zone_id_set(e_input_thread_client_get(ec_data->ec), ec_data->zone_id);
+}
+
static void
_e_policy_zone_client_data_set(E_Zone *zone, E_Client *ec)
{
E_Zone *data;
+ E_Input_Thread_Request_EClient_Data ec_data;
+ memset(&ec_data, 0, sizeof(E_Input_Thread_Request_EClient_Data));
data = e_view_data_get(e_view_client_view_get(e_client_view_get(ec)), ZONE_EC_DATA_KEY);
if (data)
}
e_view_data_set(e_view_client_view_get(e_client_view_get(ec)), ZONE_EC_DATA_KEY, zone);
+ if (e_input_thread_check_client_cloning_needed())
+ {
+ ec_data.ec = ec;
+ ec_data.zone_id = zone->id;
+ ICINF("[%s] ec(%p), zone_id(%d)\n", __func__, ec, zone->id);
+ e_input_backend_thread_safe_call(_e_policy_wl_input_thread_zone_id_set, &ec_data, sizeof(E_Input_Thread_Request_EClient_Data));
+ }
}
static void