summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2009-12-21 06:35:31 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2009-12-21 06:35:31 +0000
commitae08a21b42bf8dbc6dd25178a5cf44809a28b0a8 (patch)
tree348218e4d95723c0c5913bc992471b76e98bc802 /apps
parent6643a3bc74020293117191875bd81ce535d8c6de (diff)
downloadrockbox-ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8.tar.gz
rockbox-ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8.tar.bz2
rockbox-ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8.zip
Fix FS#10215 - peakmeter updates breaks scrolling lines in conditionally enalbed viewports... fix is to not disable conditional viewports during these updates which are *only* touching the pm token anyway
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24090 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps')
-rw-r--r--apps/gui/skin_engine/skin_display.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/apps/gui/skin_engine/skin_display.c b/apps/gui/skin_engine/skin_display.c
index 362e5078f5..79690cb715 100644
--- a/apps/gui/skin_engine/skin_display.c
+++ b/apps/gui/skin_engine/skin_display.c
@@ -920,22 +920,28 @@ static bool skin_redraw(struct gui_wps *gwps, unsigned refresh_mode)
}
#endif
- /* disable any viewports which are conditionally displayed */
- for (viewport_list = data->viewports;
- viewport_list; viewport_list = viewport_list->next)
+ /* disable any viewports which are conditionally displayed.
+ * If we are only refreshing the peak meter then don't change the viewport
+ * enabled flags as this will stop scrolling. viewports cant be
+ * toggled in this refresh mode anyway (FS#10215)*/
+ if (refresh_mode != WPS_REFRESH_PEAK_METER)
{
- struct skin_viewport *skin_viewport =
- (struct skin_viewport *)viewport_list->token->value.data;
- if (skin_viewport->hidden_flags&VP_NEVER_VISIBLE)
- {
- continue;
- }
- if (skin_viewport->hidden_flags&VP_DRAW_HIDEABLE)
+ for (viewport_list = data->viewports;
+ viewport_list; viewport_list = viewport_list->next)
{
- if (skin_viewport->hidden_flags&VP_DRAW_HIDDEN)
- skin_viewport->hidden_flags |= VP_DRAW_WASHIDDEN;
- else
- skin_viewport->hidden_flags |= VP_DRAW_HIDDEN;
+ struct skin_viewport *skin_viewport =
+ (struct skin_viewport *)viewport_list->token->value.data;
+ if (skin_viewport->hidden_flags&VP_NEVER_VISIBLE)
+ {
+ continue;
+ }
+ if (skin_viewport->hidden_flags&VP_DRAW_HIDEABLE)
+ {
+ if (skin_viewport->hidden_flags&VP_DRAW_HIDDEN)
+ skin_viewport->hidden_flags |= VP_DRAW_WASHIDDEN;
+ else
+ skin_viewport->hidden_flags |= VP_DRAW_HIDDEN;
+ }
}
}
int viewport_count = 0;