From ae08a21b42bf8dbc6dd25178a5cf44809a28b0a8 Mon Sep 17 00:00:00 2001 From: Jonathan Gordon Date: Mon, 21 Dec 2009 06:35:31 +0000 Subject: 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 --- apps/gui/skin_engine/skin_display.c | 34 ++++++++++++++++++++-------------- 1 file 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; -- cgit v1.1