From 717f0bd982004a3df0445d7747f04ab46ea3f6d5 Mon Sep 17 00:00:00 2001 From: Teruaki Kawashima Date: Wed, 29 Sep 2010 13:23:24 +0000 Subject: explicitly set img->using_preloaded_icons in parse_image_load() and don't rely on parse_image_display(). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28184 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/skin_engine/skin_parser.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index faf03ec0f1..8f3d47a6ae 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -248,11 +248,8 @@ static int parse_image_display(struct skin_element *element, id->label = label; id->offset = 0; id->token = NULL; - img->using_preloaded_icons = false; - if (!strcmp(img->bm.data, "__list_icons__")) + if (img->using_preloaded_icons) { - img->num_subimages = Icon_Last_Themeable; - img->using_preloaded_icons = true; token->type = SKIN_TOKEN_IMAGE_DISPLAY_LISTICON; } @@ -317,6 +314,7 @@ static int parse_image_load(struct skin_element *element, img->num_subimages = 1; img->always_display = false; img->display = -1; + img->using_preloaded_icons = false; /* save current viewport */ img->vp = &curr_vp->vp; @@ -331,6 +329,12 @@ static int parse_image_load(struct skin_element *element, if (img->num_subimages <= 0) return WPS_ERROR_INVALID_PARAM; } + + if (!strcmp(img->bm.data, "__list_icons__")) + { + img->num_subimages = Icon_Last_Themeable; + img->using_preloaded_icons = true; + } struct skin_token_list *item = (struct skin_token_list *)new_skin_token_list_item(NULL, img); @@ -1064,7 +1068,7 @@ static bool load_skin_bmp(struct wps_data *wps_data, struct bitmap *bitmap, char fd = open(img_path, O_RDONLY); if (fd < 0) return false; - size_t buf_size = read_bmp_file(img_path, bitmap, 0, + size_t buf_size = read_bmp_fd(fd, bitmap, 0, format|FORMAT_RETURN_SIZE, NULL); char* imgbuf = (char*)skin_buffer_alloc(buf_size); if (!imgbuf) -- cgit v1.2.3