예제 #1
0
/**
 * @internal
 * @returns the number of initializations left for this system
 * @brief Attempts to shut down the subsystem if nothing else is using it
 */
void
efreet_desktop_shutdown(void)
{
    Efreet_Desktop_Type_Info *info;
    char *dir;

    if (efreet_desktop_exe_handler) ecore_event_handler_del(efreet_desktop_exe_handler);
    IF_RELEASE(desktop_environment);
    IF_FREE_HASH(efreet_desktop_cache);
    while (efreet_desktop_types)
    {
        info = eina_list_data_get(efreet_desktop_types);
        efreet_desktop_type_info_free(info);
        efreet_desktop_types = eina_list_remove_list(efreet_desktop_types,
                                                     efreet_desktop_types);
    }
    EINA_LIST_FREE(efreet_desktop_dirs, dir)
        eina_stringshare_del(dir);
    if (cache_monitor) ecore_file_monitor_del(cache_monitor);
    if (change_monitors) eina_hash_free(change_monitors);
    if (cache) eet_close(cache);
    efreet_desktop_edd_shutdown(desktop_edd);
    ecore_file_shutdown();
    eina_log_domain_unregister(_efreet_desktop_log_dom);
    IF_RELEASE(cache_file);
    IF_RELEASE(cache_dirs);
    if (efreet_desktop_job) ecore_job_del(efreet_desktop_job);
    efreet_desktop_job = NULL;
}
예제 #2
0
static void
_unload_position_fb(void *self)
{
    plugin_t *plugin = (plugin_t *)self;
    if(plugin->monitor)
        ecore_file_monitor_del(plugin->monitor);
    position_cache_free(plugin->cache);
    free(plugin->state_file);
    free(plugin);
}
예제 #3
0
static Eina_Bool
volume_timer(void *data)
{
   char buf[4096];
   
   volume_load();
   volumes_load_timer = NULL;
   if (volumes_file_mon) ecore_file_monitor_del(volumes_file_mon);
   snprintf(buf, sizeof(buf), "%s/volumes", config);
   volumes_file_mon = ecore_file_monitor_add(buf, volume_file_change, NULL);
   return EINA_FALSE;
}