EOLIAN static Efl_Input_Event * _efl_input_pointer_efl_duplicate_duplicate(const Eo *obj, Efl_Input_Pointer_Data *pd) { Efl_Input_Pointer_Data *ev; Efl_Input_Focus *evt; if (efl_invalidated_get(obj)) { ERR("Object %s has already been invalidated and can't be duplicated.", efl_debug_name_get(obj)); return NULL; } if (!efl_parent_get(obj)) { ERR("Object %s has not parent during duplicate.", efl_debug_name_get(obj)); return NULL; } evt = efl_add(MY_CLASS, efl_parent_get(obj), efl_allow_parent_unref_set(efl_added, EINA_TRUE)); ev = efl_data_scope_get(evt, MY_CLASS); if (!ev) return NULL; memcpy(ev, pd, sizeof(*ev)); ev->eo = evt; ev->legacy = NULL; ev->evas_done = 0; ev->win_fed = 0; ev->fake = 1; ev->device = efl_ref(pd->device); return evt; }
static void _efl_net_server_ssl_client_event_closed(void *data, const Efl_Event *event) { Eo *server = data; Eo *client = event->object; efl_event_callback_del(client, EFL_IO_CLOSER_EVENT_CLOSED, _efl_net_server_ssl_client_event_closed, server); if (efl_parent_get(client) == server) efl_parent_set(client, NULL); /* do NOT change count as we're using the underlying server's count */ //efl_net_server_clients_count_set(server, efl_net_server_clients_count_get(server) - 1); }
static void _node_change(Efl_VG *obj, Efl_Canvas_Vg_Node_Data *nd) { if (!nd || nd->flags != EFL_GFX_CHANGE_FLAG_NONE) return; nd->flags = EFL_GFX_CHANGE_FLAG_ALL; Eo *p = obj; while ((p = efl_parent_get(p))) { if (!efl_isa(p, MY_CLASS)) break; Efl_Canvas_Vg_Node_Data *pnd = efl_data_scope_get(p, MY_CLASS); if (pnd->flags != EFL_GFX_CHANGE_FLAG_NONE) break; pnd->flags = EFL_GFX_CHANGE_FLAG_ALL; } if (efl_invalidated_get(nd->vg_obj)) return; efl_canvas_vg_object_change(nd->vd); }
EOLIAN static void _efl_net_dialer_simple_efl_object_destructor(Eo *o, Efl_Net_Dialer_Simple_Data *pd) { Eo *inner_io; if (pd->inner_class) pd->inner_class = NULL; eina_stringshare_replace(&pd->proxy_url, NULL); if (pd->line_delimiter.mem) { free((void *)pd->line_delimiter.mem); pd->line_delimiter.mem = NULL; } inner_io = efl_io_buffered_stream_inner_io_get(o); if (inner_io) { efl_event_callback_array_del(inner_io, _efl_net_dialer_simple_inner_io_cbs(), o); if (efl_parent_get(inner_io) == o) efl_parent_set(inner_io, NULL); } efl_destructor(efl_super(o, EFL_NET_DIALER_SIMPLE_CLASS)); }
Eo *client = event->object; efl_event_callback_del(client, EFL_IO_CLOSER_EVENT_CLOSED, _efl_net_server_ssl_client_event_closed, server); if (efl_parent_get(client) == server) efl_parent_set(client, NULL); /* do NOT change count as we're using the underlying server's count */ //efl_net_server_clients_count_set(server, efl_net_server_clients_count_get(server) - 1); } static Eina_Bool _efl_net_server_ssl_efl_net_server_client_announce(Eo *o, Efl_Net_Server_Ssl_Data *pd EINA_UNUSED, Eo *client) { EINA_SAFETY_ON_NULL_RETURN_VAL(client, EINA_FALSE); EINA_SAFETY_ON_FALSE_GOTO(efl_isa(client, EFL_NET_SOCKET_SSL_CLASS), wrong_type); EINA_SAFETY_ON_FALSE_GOTO(efl_parent_get(client) == o, wrong_parent); efl_event_callback_call(o, EFL_NET_SERVER_EVENT_CLIENT_ADD, client); if (efl_parent_get(client) != o) { DBG("client %s was reparented! Ignoring it...", efl_net_socket_address_remote_get(client)); return EINA_TRUE; } if (efl_ref_count(client) == 1) /* users must take a reference themselves */ { DBG("client %s was not handled, closing it...", efl_net_socket_address_remote_get(client)); efl_del(client);