summaryrefslogtreecommitdiff
path: root/apps/gui/skin_engine
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r--apps/gui/skin_engine/skin_parser.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c
index 57153ed602..cf90ff5eab 100644
--- a/apps/gui/skin_engine/skin_parser.c
+++ b/apps/gui/skin_engine/skin_parser.c
@@ -1826,7 +1826,7 @@ static bool load_skin_bitmaps(struct wps_data *wps_data, char *bmpdir)
1826 { 1826 {
1827 struct wps_token *token = SKINOFFSETTOPTR(skin_buffer, list->token); 1827 struct wps_token *token = SKINOFFSETTOPTR(skin_buffer, list->token);
1828 struct gui_img *img = (struct gui_img*)SKINOFFSETTOPTR(skin_buffer, token->value.data); 1828 struct gui_img *img = (struct gui_img*)SKINOFFSETTOPTR(skin_buffer, token->value.data);
1829 if (img->bm.data) 1829 if (!img->loaded)
1830 { 1830 {
1831 if (img->using_preloaded_icons) 1831 if (img->using_preloaded_icons)
1832 { 1832 {
@@ -1835,10 +1835,30 @@ static bool load_skin_bitmaps(struct wps_data *wps_data, char *bmpdir)
1835 } 1835 }
1836 else 1836 else
1837 { 1837 {
1838 img->buflib_handle = load_skin_bmp(wps_data, &img->bm, bmpdir); 1838 char path[MAX_PATH];
1839 int handle;
1840 strcpy(path, img->bm.data);
1841 handle = load_skin_bmp(wps_data, &img->bm, bmpdir);
1842 img->buflib_handle = handle;
1839 img->loaded = img->buflib_handle >= 0; 1843 img->loaded = img->buflib_handle >= 0;
1840 if (img->loaded) 1844 if (img->loaded)
1845 {
1846 struct skin_token_list *imglist = SKINOFFSETTOPTR(skin_buffer, list->next);
1847
1841 img->subimage_height = img->bm.height / img->num_subimages; 1848 img->subimage_height = img->bm.height / img->num_subimages;
1849 while (imglist)
1850 {
1851 token = SKINOFFSETTOPTR(skin_buffer, imglist->token);
1852 img = (struct gui_img*)SKINOFFSETTOPTR(skin_buffer, token->value.data);
1853 if (!strcmp(path, img->bm.data))
1854 {
1855 img->loaded = true;
1856 img->buflib_handle = handle;
1857 img->subimage_height = img->bm.height / img->num_subimages;
1858 }
1859 imglist = SKINOFFSETTOPTR(skin_buffer, imglist->next);
1860 }
1861 }
1842 else 1862 else
1843 retval = false; 1863 retval = false;
1844 } 1864 }