static void _store_cache_trim(Elm_Store *st) { while ((st->realized) && (((int)eina_list_count(st->realized) - st->realized_count) > st->cache_max)) { Elm_Store_Item *sti = st->realized->data; if (sti->realized) { st->realized = eina_list_remove_list(st->realized, st->realized); sti->realized = EINA_FALSE; } eina_lock_take(&sti->lock); if (!sti->fetched) { eina_lock_release(&sti->lock); ELM_SAFE_FREE(sti->fetch_th, ecore_thread_cancel); eina_lock_take(&sti->lock); } sti->fetched = EINA_FALSE; //// let fetch/unfetch do the locking // eina_lock_release(&sti->lock); if (st->cb.unfetch.func) st->cb.unfetch.func(st->cb.unfetch.data, sti); // eina_lock_take(&sti->lock); sti->data = NULL; eina_lock_release(&sti->lock); } }
static void _elm_ews_wm_border_del(void *data) { Evas_Object *deco = data; evas_object_del(deco); if (_ews_border_mover_obj == deco) { ELM_SAFE_FREE(_ews_border_mover, ecore_animator_del); _ews_border_mover_obj = NULL; } }
void _elm_module_shutdown(void) { Eina_Iterator *it; Elm_Module *m; if (modules) { Eina_List *tl = NULL; it = eina_hash_iterator_data_new(modules); EINA_ITERATOR_FOREACH(it, m) tl = eina_list_append(tl, m); eina_iterator_free(it); EINA_LIST_FREE(tl, m) _elm_module_del(m); ELM_SAFE_FREE(modules, eina_hash_free); } ELM_SAFE_FREE(modules_as, eina_hash_free); }
void _elm_module_unload(Elm_Module *m) { eina_stringshare_del(m->so_path); eina_stringshare_del(m->data_dir); eina_stringshare_del(m->bin_dir); ELM_SAFE_FREE(m->api, free); if (m->module) { if (m->shutdown_func) m->shutdown_func(m); eina_module_unload(m->module); eina_module_free(m->module); m->module = NULL; } m->shutdown_func = NULL; m->init_func = NULL; }
static void _activate(Evas_Object *obj) { ELM_BUTTON_DATA_GET_OR_RETURN(obj, sd); ELM_SAFE_FREE(sd->timer, ecore_timer_del); sd->repeating = EINA_FALSE; if ((_elm_config->access_mode == ELM_ACCESS_MODE_OFF) || (_elm_access_2nd_click_timeout(obj))) { if (_elm_config->access_mode != ELM_ACCESS_MODE_OFF) _elm_access_say(E_("Clicked")); if (!elm_widget_disabled_get(obj) && !evas_object_freeze_events_get(obj)) evas_object_smart_callback_call(obj, SIG_CLICKED, NULL); } }
static void _mouse_up_cb(void *data, const Efl_Event *event) { Efl_Input_Pointer *ev = event->info; Eo *obj = data; EFL_UI_PAGER_DATA_GET(obj, pd); if (efl_input_event_flags_get(ev) & EFL_INPUT_FLAGS_PROCESSED) return; if (!pd->down.enabled) return; pd->down.enabled = EINA_FALSE; ELM_SAFE_FREE(pd->job, ecore_job_del); if (EINA_DBL_EQ(pd->curr.pos, 0.0)) return; pd->mouse_up_time = ecore_loop_time_get(); efl_event_callback_add(obj, EFL_CANVAS_OBJECT_EVENT_ANIMATOR_TICK, _mouse_up_animation, pd); }
static void _conformant_parts_swallow(Evas_Object *obj) { Evas *e; ELM_CONFORMANT_DATA_GET(obj, sd); ELM_WIDGET_DATA_GET_OR_RETURN(obj, wd); e = evas_object_evas_get(obj); sd->scroller = NULL; //Virtual Keyboard if (edje_object_part_exists(wd->resize_obj, VIRTUALKEYPAD_PART)) { if (!sd->virtualkeypad) { sd->virtualkeypad = evas_object_rectangle_add(e); elm_widget_sub_object_add(obj, sd->virtualkeypad); evas_object_size_hint_max_set(sd->virtualkeypad, -1, 0); } else _conformant_part_sizing_eval(obj, ELM_CONFORMANT_VIRTUAL_KEYPAD_PART); evas_object_color_set(sd->virtualkeypad, 0, 0, 0, 0); elm_layout_content_set(obj, VIRTUALKEYPAD_PART, sd->virtualkeypad); } else ELM_SAFE_FREE(sd->virtualkeypad, evas_object_del); //Clipboard if (edje_object_part_exists(wd->resize_obj, CLIPBOARD_PART)) { if (!sd->clipboard) { sd->clipboard = evas_object_rectangle_add(e); evas_object_size_hint_min_set(sd->clipboard, -1, 0); evas_object_size_hint_max_set(sd->clipboard, -1, 0); } else _conformant_part_sizing_eval(obj, ELM_CONFORMANT_CLIPBOARD_PART); evas_object_color_set(sd->clipboard, 0, 0, 0, 0); elm_layout_content_set(obj, CLIPBOARD_PART, sd->clipboard); } else ELM_SAFE_FREE(sd->clipboard, evas_object_del); //Softkey if (edje_object_part_exists(wd->resize_obj, SOFTKEY_PART)) { if (!sd->softkey) { sd->softkey = evas_object_rectangle_add(e); evas_object_size_hint_min_set(sd->softkey, -1, 0); evas_object_size_hint_max_set(sd->softkey, -1, 0); } else _conformant_part_sizing_eval(obj, ELM_CONFORMANT_SOFTKEY_PART); evas_object_color_set(sd->softkey, 0, 0, 0, 0); elm_layout_content_set(obj, SOFTKEY_PART, sd->softkey); } else ELM_SAFE_FREE(sd->softkey, evas_object_del); }