diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c index 0613f986b3..0b3ba65751 100644 --- a/apps/gui/skin_engine/skin_display.c +++ b/apps/gui/skin_engine/skin_display.c @@ -298,10 +298,7 @@ void wps_draw_image(struct gui_wps *gwps, struct gui_img *img, int subimage) { struct screen *display = gwps->display; img->bm.data = core_get_data(img->buflib_handle); - if(img->always_display) - display->set_drawmode(DRMODE_FG); - else - display->set_drawmode(DRMODE_SOLID); + display->set_drawmode(DRMODE_SOLID); display->bmp_part(&img->bm, 0, img->subimage_height * subimage, img->x, img->y, img->bm.width, img->subimage_height); @@ -331,10 +328,6 @@ void wps_display_images(struct gui_wps *gwps, struct viewport* vp) { wps_draw_image(gwps, img, img->display); } - else if (img->always_display && SKINOFFSETTOPTR(get_skin_buffer(data), img->vp) == vp) - { - wps_draw_image(gwps, img, 0); - } } list = SKINOFFSETTOPTR(get_skin_buffer(data), list->next); } diff --git a/apps/gui/skin_engine/skin_parser.c b/apps/gui/skin_engine/skin_parser.c index 0fe8789bcb..3b83d9e199 100644 --- a/apps/gui/skin_engine/skin_parser.c +++ b/apps/gui/skin_engine/skin_parser.c @@ -415,7 +415,6 @@ static int parse_image_load(struct skin_element *element, img->x = x; img->y = y; img->num_subimages = 1; - img->always_display = false; img->display = -1; img->using_preloaded_icons = false; img->buflib_handle = -1; @@ -425,7 +424,7 @@ static int parse_image_load(struct skin_element *element, if (token->type == SKIN_TOKEN_IMAGE_DISPLAY) { - img->always_display = true; + token->value.data = PTRTOSKINOFFSET(skin_buffer, img); } else if (element->params_count == 5) { @@ -1000,7 +999,6 @@ static int parse_progressbar_tag(struct skin_element* element, img->x = 0; img->y = 0; img->num_subimages = 1; - img->always_display = false; img->display = -1; img->using_preloaded_icons = false; img->buflib_handle = -1; diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c index ee42dfa5a7..f86b161eab 100644 --- a/apps/gui/skin_engine/skin_render.c +++ b/apps/gui/skin_engine/skin_render.c @@ -198,6 +198,13 @@ static bool do_non_text_tags(struct gui_wps *gwps, struct skin_draw_info *info, #endif break; #ifdef HAVE_LCD_BITMAP + case SKIN_TOKEN_IMAGE_DISPLAY: + { + struct gui_img *img = SKINOFFSETTOPTR(skin_buffer, token->value.data); + if (img && img->loaded && do_refresh) + img->display = 0; + } + break; case SKIN_TOKEN_IMAGE_DISPLAY_LISTICON: case SKIN_TOKEN_IMAGE_PRELOAD_DISPLAY: { diff --git a/apps/gui/skin_engine/wps_internals.h b/apps/gui/skin_engine/wps_internals.h index 1ea5dbf467..3b1d7cf054 100644 --- a/apps/gui/skin_engine/wps_internals.h +++ b/apps/gui/skin_engine/wps_internals.h @@ -80,7 +80,6 @@ struct gui_img { int buflib_handle; OFFSETTYPE(char*) label; bool loaded; /* load state */ - bool always_display; /* not using the preload/display mechanism */ int display; bool using_preloaded_icons; /* using the icon system instead of a bmp */ }; diff --git a/lib/skin_parser/tag_table.c b/lib/skin_parser/tag_table.c index a44b2ef251..e4b8bb1bf9 100644 --- a/lib/skin_parser/tag_table.c +++ b/lib/skin_parser/tag_table.c @@ -178,7 +178,7 @@ static const struct tag_info legal_tags[] = { SKIN_TOKEN_IMAGE_PRELOAD, "xl", "SFII|I", 0|NOBREAK }, { SKIN_TOKEN_IMAGE_PRELOAD_DISPLAY, "xd", "S|[IT]I", 0 }, - { SKIN_TOKEN_IMAGE_DISPLAY, "x", "SFII", 0|NOBREAK }, + { SKIN_TOKEN_IMAGE_DISPLAY, "x", "SFII", SKIN_REFRESH_STATIC|NOBREAK }, { SKIN_TOKEN_LOAD_FONT, "Fl" , "IF|I", 0|NOBREAK }, { SKIN_TOKEN_ALBUMART_LOAD, "Cl" , "IIII|ss", 0|NOBREAK }, diff --git a/wps/cabbiev2.112x64x1.wps b/wps/cabbiev2.112x64x1.wps index 3c56df1be1..cfefac890d 100644 --- a/wps/cabbiev2.112x64x1.wps +++ b/wps/cabbiev2.112x64x1.wps @@ -5,6 +5,7 @@ %wd # # Load Backdrop +%V(0,0,-,-,-) %x(z,wpsbackdrop-112x64x1.bmp,0,0) # # Preload Images diff --git a/wps/cabbiev2.128x64x1.wps b/wps/cabbiev2.128x64x1.wps index 71c80aa728..23da53f4d3 100644 --- a/wps/cabbiev2.128x64x1.wps +++ b/wps/cabbiev2.128x64x1.wps @@ -11,12 +11,11 @@ %xl(D,shuffle-128x64x1.bmp,0,1) %xl(E,repeat-128x64x1.bmp,0,0,4) %xl(F,playmode-128x64x1.bmp,0,0,5) -%x(a,pbbackground-128x64x1.bmp,1,0) %xl(b,bar-128x64x1.bmp,2,0) # # Progress Bar %V(0,0,128,6,1) -#%xd(a) +%x(a,pbbackground-128x64x1.bmp,1,0) %pb(2,1,123,4,pb-128x64x1.bmp) # # Separator Bar