示例#1
0
/* local subsystem functions */
static void
_e_xinerama_clean(void)
{
   E_FREE_LIST(all_screens, free);
   chosen_screens = eina_list_free(chosen_screens);
   E_FREE_LIST(fake_screens, free);
}
示例#2
0
EINTERN int
e_dnd_shutdown(void)
{
   E_FREE_LIST(_drag_list, e_object_del);

   _active_handlers = eina_list_free(_active_handlers);
   E_FREE_LIST(_drop_handlers, e_drop_handler_del);

   E_FREE_LIST(_event_handlers, ecore_event_handler_del);

   eina_hash_free(_drop_win_hash);

   eina_hash_free(_drop_handlers_responsives);

   eina_stringshare_del(_type_text_uri_list);
   eina_stringshare_del(_type_xds);
   eina_stringshare_del(_type_text_x_moz_url);
   eina_stringshare_del(_type_enlightenment_x_file);
   _type_text_uri_list = NULL;
   _type_xds = NULL;
   _type_text_x_moz_url = NULL;
   _type_enlightenment_x_file = NULL;
   _text_atom = 0;

   return 1;
}
示例#3
0
E_API void
e_xinerama_screens_set(Eina_List *screens)
{
   E_FREE_LIST(all_screens, free);
   chosen_screens = eina_list_free(chosen_screens);
   all_screens = screens;
   _e_xinerama_update();
}
EINTERN Eina_List *
ech_language_enumerate(void)
{
   Eina_List *e_lang_list, *blang_list = NULL;
   FILE *output;
   char line[32];

   e_lang_list = e_intl_language_list();

   /* Get list of all locales and start making map */
#ifdef __OpenBSD__
   output = popen("ls /usr/share/locale", "r");
#else
   output = popen("locale -a", "r");
#endif
   if (!output) return 0;
   while (fscanf(output, "%[^\n]\n", line) == 1)
     {
        E_Locale_Parts *locale_parts;
        char *basic_language;
        unsigned int i = 0;

        locale_parts = e_intl_locale_parts_get(line);

        if (!locale_parts) continue;
        if (locale_parts->mask & E_INTL_LOC_REGION)
          basic_language = e_intl_locale_parts_combine(locale_parts, E_INTL_LOC_LANG | E_INTL_LOC_REGION);
        else
          basic_language = strdup(locale_parts->lang);
        e_intl_locale_parts_free(locale_parts);
        if (!basic_language) continue;
        while (basic_language_predefined_pairs[i].locale_key)
          {
             /* if basic language is supported by E and System*/
             if (!strncmp(basic_language_predefined_pairs[i].locale_key,
                          basic_language, strlen(basic_language)))
               {
                  if ((!blang_list) || (!eina_list_data_find(blang_list, &basic_language_predefined_pairs[i])))
                    blang_list = eina_list_append(blang_list, &basic_language_predefined_pairs[i]);
                  break;
               }
             i++;
          }
        free(basic_language);
     }
   pclose(output);
   E_FREE_LIST(e_lang_list, free);
   return blang_list;
}
示例#5
0
EINTERN int
e_thumb_shutdown(void)
{
   _e_thumb_thumbnailers_kill_cancel();
   _e_thumb_cb_kill(NULL);
   if (_exe_del_handler) ecore_event_handler_del(_exe_del_handler);
   _exe_del_handler = NULL;
   _thumbnailers = eina_list_free(_thumbnailers);
   E_FREE_LIST(_thumbnailers_exe, ecore_exe_free);
   _thumb_queue = eina_list_free(_thumb_queue);
   _objid = 0;
   eina_hash_free(_thumbs);
   _thumbs = NULL;
   _pending = 0;
   return 1;
}
示例#6
0
EINTERN int
e_randr2_shutdown(void)
{
   _animated_apply_abort();
   // nuke any screen config delay handler
   if (_screen_delay_timer) ecore_timer_del(_screen_delay_timer);
   _screen_delay_timer = NULL;
   // stop listening to driver info
   if (e_comp->screen->shutdown)
     e_comp->screen->shutdown();
   // clear up all event handlers
   E_FREE_LIST(_ev_handlers, ecore_event_handler_del);
   // free up screen info
   _info_free(e_randr2);
   e_randr2 = NULL;
   _config_free(e_randr2_cfg);
   e_randr2_cfg = NULL;
   // free up data descriptors
   E_CONFIG_DD_FREE(_e_randr2_cfg_edd);
   E_CONFIG_DD_FREE(_e_randr2_cfg_screen_edd)
   return 1;
}