raster pushed a commit to branch elementary-1.9. http://git.enlightenment.org/core/elementary.git/commit/?id=04788dec692be385f0ce3c0a13f0d439a6bea79e
commit 04788dec692be385f0ce3c0a13f0d439a6bea79e Author: Carsten Haitzler (Rasterman) <[email protected]> Date: Sat Mar 15 12:01:56 2014 +0900 theme overlays - fix to prepend on overlay to be semantically consistent @fix --- src/lib/elm_theme.c | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/src/lib/elm_theme.c b/src/lib/elm_theme.c index 58ff891..54a78ab 100644 --- a/src/lib/elm_theme.c +++ b/src/lib/elm_theme.c @@ -28,17 +28,27 @@ _elm_theme_find_try(Elm_Theme *th, Eina_File *f, const char *group) static inline void _elm_theme_item_finalize(Elm_Theme_Files *files, const char *item, - Eina_File *f) + Eina_File *f, + Eina_Bool prepend) { if (!f) return ; - files->items = eina_list_append(files->items, - eina_stringshare_add(item)); - files->handles = eina_list_append(files->handles, f); + if (prepend) + { + files->items = eina_list_prepend(files->items, + eina_stringshare_add(item)); + files->handles = eina_list_prepend(files->handles, f); + } + else + { + files->items = eina_list_append(files->items, + eina_stringshare_add(item)); + files->handles = eina_list_append(files->handles, f); + } } static void -_elm_theme_file_item_add(Elm_Theme_Files *files, const char *item) +_elm_theme_file_item_add(Elm_Theme_Files *files, const char *item, Eina_Bool prepend) { Eina_Strbuf *buf = NULL; Eina_File *f = NULL; @@ -68,7 +78,7 @@ _elm_theme_file_item_add(Elm_Theme_Files *files, const char *item) "%s/"ELEMENTARY_BASE_DIR"/themes/%s.edj", home, item); f = eina_file_open(eina_strbuf_string_get(buf), EINA_FALSE); - _elm_theme_item_finalize(files, item, f); + _elm_theme_item_finalize(files, item, f, prepend); eina_strbuf_reset(buf); eina_strbuf_append_printf(buf, @@ -78,7 +88,7 @@ _elm_theme_file_item_add(Elm_Theme_Files *files, const char *item) /* Finalize will be done by the common one */ } - _elm_theme_item_finalize(files, item, f); + _elm_theme_item_finalize(files, item, f, prepend); on_error: if (buf) eina_strbuf_free(buf); @@ -435,7 +445,7 @@ _elm_theme_parse(Elm_Theme *th, const char *theme) EINA_LIST_FREE(th->themes.handles, f) eina_file_close(f); EINA_LIST_FREE(names, p) - _elm_theme_file_item_add(&th->themes, p); + _elm_theme_file_item_add(&th->themes, p, EINA_FALSE); return EINA_TRUE; } @@ -457,7 +467,7 @@ elm_theme_new(void) Elm_Theme *th = calloc(1, sizeof(Elm_Theme)); if (!th) return NULL; th->ref = 1; - _elm_theme_file_item_add(&th->themes, "default"); + _elm_theme_file_item_add(&th->themes, "default", EINA_FALSE); themes = eina_list_append(themes, th); return th; } @@ -545,7 +555,7 @@ elm_theme_overlay_add(Elm_Theme *th, const char *item) { if (!item) return; if (!th) th = &(theme_default); - _elm_theme_file_item_add(&th->overlay, item); + _elm_theme_file_item_add(&th->overlay, item, EINA_TRUE); elm_theme_flush(th); } @@ -564,7 +574,7 @@ elm_theme_overlay_mmap_add(Elm_Theme *th, const Eina_File *f) Eina_File *file = eina_file_dup(f); if (!th) th = &(theme_default); - _elm_theme_item_finalize(&th->overlay, eina_file_filename_get(file), file); + _elm_theme_item_finalize(&th->overlay, eina_file_filename_get(file), file, EINA_TRUE); elm_theme_flush(th); } @@ -589,7 +599,7 @@ elm_theme_extension_add(Elm_Theme *th, const char *item) { if (!item) return ; if (!th) th = &(theme_default); - _elm_theme_file_item_add(&th->extension, item); + _elm_theme_file_item_add(&th->extension, item, EINA_FALSE); elm_theme_flush(th); } @@ -609,7 +619,7 @@ elm_theme_extension_mmap_add(Elm_Theme *th, const Eina_File *f) if (!f) return ; if (!th) th = &(theme_default); - _elm_theme_item_finalize(&th->overlay, eina_file_filename_get(file), file); + _elm_theme_item_finalize(&th->overlay, eina_file_filename_get(file), file, EINA_FALSE); elm_theme_flush(th); } --
