diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/gui/skin_engine/skin_display.c | 26 | ||||
-rw-r--r-- | apps/gui/skin_engine/wps_internals.h | 1 | ||||
-rw-r--r-- | apps/gui/statusbar-skinned.c | 2 |
3 files changed, 15 insertions, 14 deletions
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c index 8ea5dc5ecb..845ea18608 100644 --- a/apps/gui/skin_engine/skin_display.c +++ b/apps/gui/skin_engine/skin_display.c | |||
@@ -1123,10 +1123,11 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) | |||
1123 | struct skin_viewport *skin_viewport = | 1123 | struct skin_viewport *skin_viewport = |
1124 | (struct skin_viewport *)viewport_list->token->value.data; | 1124 | (struct skin_viewport *)viewport_list->token->value.data; |
1125 | unsigned vp_refresh_mode = refresh_mode; | 1125 | unsigned vp_refresh_mode = refresh_mode; |
1126 | unsigned hidden_flags = skin_viewport->hidden_flags; | ||
1127 | 1126 | ||
1128 | display->set_viewport(&skin_viewport->vp); | 1127 | display->set_viewport(&skin_viewport->vp); |
1129 | 1128 | ||
1129 | int hidden_vp = 0; | ||
1130 | |||
1130 | #ifdef HAVE_LCD_BITMAP | 1131 | #ifdef HAVE_LCD_BITMAP |
1131 | /* Set images to not to be displayed */ | 1132 | /* Set images to not to be displayed */ |
1132 | struct skin_token_list *imglist = data->images; | 1133 | struct skin_token_list *imglist = data->images; |
@@ -1137,18 +1138,19 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) | |||
1137 | imglist = imglist->next; | 1138 | imglist = imglist->next; |
1138 | } | 1139 | } |
1139 | #endif | 1140 | #endif |
1140 | if ((hidden_flags&VP_NEVER_VISIBLE)) | 1141 | /* dont redraw the viewport if its disabled */ |
1141 | { | 1142 | if (skin_viewport->hidden_flags&VP_NEVER_VISIBLE) |
1142 | continue; | 1143 | { /* don't draw anything into this one */ |
1144 | vp_refresh_mode = 0; hidden_vp = true; | ||
1143 | } | 1145 | } |
1144 | if ((hidden_flags&VP_DRAW_HIDDEN)) | 1146 | else if ((skin_viewport->hidden_flags&VP_DRAW_HIDDEN)) |
1145 | { | 1147 | { |
1146 | if (!(hidden_flags&VP_DRAW_WASHIDDEN)) | 1148 | if (!(skin_viewport->hidden_flags&VP_DRAW_WASHIDDEN)) |
1147 | display->scroll_stop(&skin_viewport->vp); | 1149 | display->scroll_stop(&skin_viewport->vp); |
1148 | skin_viewport->hidden_flags |= VP_DRAW_WASHIDDEN; | 1150 | skin_viewport->hidden_flags |= VP_DRAW_WASHIDDEN; |
1149 | continue; | 1151 | continue; |
1150 | } | 1152 | } |
1151 | else if (((hidden_flags& | 1153 | else if (((skin_viewport->hidden_flags& |
1152 | (VP_DRAW_WASHIDDEN|VP_DRAW_HIDEABLE)) | 1154 | (VP_DRAW_WASHIDDEN|VP_DRAW_HIDEABLE)) |
1153 | == (VP_DRAW_WASHIDDEN|VP_DRAW_HIDEABLE))) | 1155 | == (VP_DRAW_WASHIDDEN|VP_DRAW_HIDEABLE))) |
1154 | { | 1156 | { |
@@ -1158,8 +1160,7 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) | |||
1158 | 1160 | ||
1159 | if (vp_refresh_mode == WPS_REFRESH_ALL) | 1161 | if (vp_refresh_mode == WPS_REFRESH_ALL) |
1160 | { | 1162 | { |
1161 | if (!(hidden_flags&VP_NEVER_CLEAR)) | 1163 | display->clear_viewport(); |
1162 | display->clear_viewport(); | ||
1163 | } | 1164 | } |
1164 | 1165 | ||
1165 | /* loop over the lines for this viewport */ | 1166 | /* loop over the lines for this viewport */ |
@@ -1178,7 +1179,7 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) | |||
1178 | flags = line->curr_subline->line_type; | 1179 | flags = line->curr_subline->line_type; |
1179 | 1180 | ||
1180 | if (vp_refresh_mode == WPS_REFRESH_ALL || (flags & vp_refresh_mode) | 1181 | if (vp_refresh_mode == WPS_REFRESH_ALL || (flags & vp_refresh_mode) |
1181 | || new_subline_refresh) | 1182 | || new_subline_refresh || hidden_vp) |
1182 | { | 1183 | { |
1183 | /* get_line tells us if we need to update the line */ | 1184 | /* get_line tells us if we need to update the line */ |
1184 | update_line = get_line(gwps, subline, &align, | 1185 | update_line = get_line(gwps, subline, &align, |
@@ -1224,7 +1225,7 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) | |||
1224 | } | 1225 | } |
1225 | #endif | 1226 | #endif |
1226 | 1227 | ||
1227 | if (update_line && | 1228 | if (update_line && !hidden_vp && |
1228 | /* conditionals clear the line which means if the %Vd is put into the default | 1229 | /* conditionals clear the line which means if the %Vd is put into the default |
1229 | viewport there will be a blank line. | 1230 | viewport there will be a blank line. |
1230 | To get around this we dont allow any actual drawing to happen in the | 1231 | To get around this we dont allow any actual drawing to happen in the |
@@ -1253,7 +1254,8 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode) | |||
1253 | } | 1254 | } |
1254 | } | 1255 | } |
1255 | /* Now display any images in this viewport */ | 1256 | /* Now display any images in this viewport */ |
1256 | wps_display_images(gwps, &skin_viewport->vp); | 1257 | if (!hidden_vp) |
1258 | wps_display_images(gwps, &skin_viewport->vp); | ||
1257 | #endif | 1259 | #endif |
1258 | } | 1260 | } |
1259 | 1261 | ||
diff --git a/apps/gui/skin_engine/wps_internals.h b/apps/gui/skin_engine/wps_internals.h index 839a066a2d..b0f5f36eb5 100644 --- a/apps/gui/skin_engine/wps_internals.h +++ b/apps/gui/skin_engine/wps_internals.h | |||
@@ -197,7 +197,6 @@ struct skin_line { | |||
197 | #define VP_DRAW_WASHIDDEN 0x4 | 197 | #define VP_DRAW_WASHIDDEN 0x4 |
198 | /* these are never drawn, nor cleared, i.e. just ignored */ | 198 | /* these are never drawn, nor cleared, i.e. just ignored */ |
199 | #define VP_NEVER_VISIBLE 0x8 | 199 | #define VP_NEVER_VISIBLE 0x8 |
200 | #define VP_NEVER_CLEAR 0x10 | ||
201 | #define VP_DEFAULT_LABEL '|' | 200 | #define VP_DEFAULT_LABEL '|' |
202 | #define VP_NO_LABEL '-' | 201 | #define VP_NO_LABEL '-' |
203 | #define VP_INFO_LABEL '_' | 202 | #define VP_INFO_LABEL '_' |
diff --git a/apps/gui/statusbar-skinned.c b/apps/gui/statusbar-skinned.c index 179e69661a..0902950599 100644 --- a/apps/gui/statusbar-skinned.c +++ b/apps/gui/statusbar-skinned.c | |||
@@ -85,7 +85,7 @@ void sb_skin_data_load(enum screen_type screen, const char *buf, bool isfile) | |||
85 | success = false; | 85 | success = false; |
86 | } | 86 | } |
87 | /* hide this viewport, forever */ | 87 | /* hide this viewport, forever */ |
88 | vp->hidden_flags = VP_NEVER_CLEAR; | 88 | vp->hidden_flags = VP_NEVER_VISIBLE; |
89 | } | 89 | } |
90 | 90 | ||
91 | if (!success && isfile) | 91 | if (!success && isfile) |