summaryrefslogtreecommitdiff
path: root/apps/gui/bitmap
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/bitmap')
-rw-r--r--apps/gui/bitmap/list-skinned.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/apps/gui/bitmap/list-skinned.c b/apps/gui/bitmap/list-skinned.c
index 208b2df681..444d49148f 100644
--- a/apps/gui/bitmap/list-skinned.c
+++ b/apps/gui/bitmap/list-skinned.c
@@ -175,22 +175,23 @@ bool skinlist_draw(struct screen *display, struct gui_synclist *list)
175 for (cur_line = 0; cur_line < display_lines; cur_line++) 175 for (cur_line = 0; cur_line < display_lines; cur_line++)
176 { 176 {
177 struct skin_element* viewport; 177 struct skin_element* viewport;
178 struct skin_viewport* skin_viewport; 178 struct skin_viewport* skin_viewport = NULL;
179 if (list_start_item+cur_line+1 > list->nb_items) 179 if (list_start_item+cur_line+1 > list->nb_items)
180 break; 180 break;
181 current_drawing_line = list_start_item+cur_line; 181 current_drawing_line = list_start_item+cur_line;
182 is_selected = list->show_selection_marker && 182 is_selected = list->show_selection_marker &&
183 list_start_item+cur_line == list->selected_item; 183 list_start_item+cur_line == list->selected_item;
184 184
185 for (viewport = listcfg[screen]->data->tree; 185 for (viewport = SKINOFFSETTOPTR(get_skin_buffer(wps.data), listcfg[screen]->data->tree);
186 viewport; 186 viewport;
187 viewport = viewport->next) 187 viewport = SKINOFFSETTOPTR(get_skin_buffer(wps.data), viewport->next))
188 { 188 {
189 int origional_x, origional_y; 189 int origional_x, origional_y;
190 int origional_w, origional_h; 190 int origional_w, origional_h;
191 char *viewport_label = SKINOFFSETTOPTR(get_skin_buffer(wps.data), skin_viewport->label);
191 skin_viewport = (struct skin_viewport*)viewport->data; 192 skin_viewport = (struct skin_viewport*)viewport->data;
192 if (viewport->children == 0 || !skin_viewport->label || 193 if (viewport->children == 0 || !viewport_label ||
193 (skin_viewport->label && strcmp(label, skin_viewport->label)) 194 (skin_viewport->label && strcmp(label, viewport_label))
194 ) 195 )
195 continue; 196 continue;
196 if (is_selected) 197 if (is_selected)
@@ -220,15 +221,17 @@ bool skinlist_draw(struct screen *display, struct gui_synclist *list)
220 display->set_viewport(&skin_viewport->vp); 221 display->set_viewport(&skin_viewport->vp);
221#ifdef HAVE_LCD_BITMAP 222#ifdef HAVE_LCD_BITMAP
222 /* Set images to not to be displayed */ 223 /* Set images to not to be displayed */
223 struct skin_token_list *imglist = wps.data->images; 224 struct skin_token_list *imglist = SKINOFFSETTOPTR(get_skin_buffer(wps.data), wps.data->images);
224 while (imglist) 225 while (imglist)
225 { 226 {
226 struct gui_img *img = (struct gui_img *)imglist->token->value.data; 227 struct wps_token *token = SKINOFFSETTOPTR(get_skin_buffer(wps.data), imglist->token);
228 struct gui_img *img = SKINOFFSETTOPTR(get_skin_buffer(wps.data), token->value.data);
227 img->display = -1; 229 img->display = -1;
228 imglist = imglist->next; 230 imglist = SKINOFFSETTOPTR(get_skin_buffer(wps.data), imglist->next);
229 } 231 }
230#endif 232#endif
231 skin_render_viewport(viewport->children[0], 233 struct skin_element** children = SKINOFFSETTOPTR(get_skin_buffer(wps.data), viewport->children);
234 skin_render_viewport(children[0],
232 &wps, skin_viewport, SKIN_REFRESH_ALL); 235 &wps, skin_viewport, SKIN_REFRESH_ALL);
233#ifdef HAVE_LCD_BITMAP 236#ifdef HAVE_LCD_BITMAP
234 wps_display_images(&wps, &skin_viewport->vp); 237 wps_display_images(&wps, &skin_viewport->vp);