void evfs_posix_monitor_remove(evfs_client * client, char *path) { Ecore_List *mon_list = ecore_hash_get(posix_monitor_hash, path); Ecore_File_Monitor *em = NULL; if (!mon_list) { /*There is no one monitoring this - so this client can't be... */ return; } else { evfs_file_monitor *mon = NULL; evfs_file_monitor *check_last = NULL; ecore_list_first_goto(mon_list); while ((mon = ecore_list_current(mon_list))) { if (mon->client == client) { em = mon->em; ecore_list_remove(mon_list); goto final; } ecore_list_next(mon_list); } goto out; final:
void entropy_notify_event_expire_requestor_layout(void* requestor) { /*HACK - assume the requestor is an entropy_gui_component_instance* - * safe for now - but we commit ourselves here*/ entropy_notification_engine* engine = entropy_core_get_core()->notify; entropy_gui_component_instance* instance = requestor; entropy_gui_component_instance* layout = instance->layout_parent; entropy_notify_event* ev; ecore_list_first_goto(engine->op_queue); ev = ecore_list_current(engine->op_queue); while ( ev) { if ( ((entropy_gui_component_instance*)ev->requestor_data)->layout_parent == layout) { if (!ev->processed) { ecore_list_remove(engine->op_queue); entropy_notify_event_destroy(ev); printf("Removed event, unprocessed: %p\n", ev); ev = ecore_list_current(engine->op_queue); } else { printf("Left event, processed: %p\n", ev); ev = ecore_list_next(engine->op_queue); } } else { printf("Left event, different layout: %p\n", ev); ev = ecore_list_next(engine->op_queue); } } }
/** * update the view of this project based on its contents */ void project_update( void ) { Ewl_Widget *w; Ecore_List *names; Ecore_Sheap *snames; int i, nodes; char *name; ewl_tree_selected_clear(EWL_TREE(file_tree)); ewl_container_reset(EWL_CONTAINER(file_tree)); if( !active_project->files->nodes ) return; names = ecore_hash_keys(active_project->files); nodes = ecore_list_count(names); snames = ecore_sheap_new(ecore_str_compare, nodes); while( (name = ecore_list_remove(names)) ) ecore_sheap_insert(snames, name); ecore_sheap_sort(snames); for( i=0;i<nodes;i++ ) { Ewl_Widget *row; name = ecore_sheap_item(snames, i); w = ewl_text_new(name); row = ewl_tree_row_add(EWL_TREE(file_tree), NULL, &w); ewl_callback_append(row, EWL_CALLBACK_DOUBLE_CLICKED, form_open, name); ewl_callback_append(row, EWL_CALLBACK_CLICKED, project_file_menu, name); ewl_widget_show(w); } ecore_sheap_destroy(snames); ecore_list_destroy(names); }