diff options
| author | Jonathan Gordon <rockbox@jdgordon.info> | 2009-12-21 06:35:31 +0000 |
|---|---|---|
| committer | Jonathan Gordon <rockbox@jdgordon.info> | 2009-12-21 06:35:31 +0000 |
| commit | ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8 (patch) | |
| tree | 348218e4d95723c0c5913bc992471b76e98bc802 /apps | |
| parent | 6643a3bc74020293117191875bd81ce535d8c6de (diff) | |
| download | rockbox-ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8.zip rockbox-ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8.tar.gz rockbox-ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8.tar.bz2 rockbox-ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8.tar.xz | |
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.c | 34 |
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 362e507..79690cb 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; |