Index: apps/plugins/disktidy.c =================================================================== --- apps/plugins/disktidy.c (revision 18912) +++ apps/plugins/disktidy.c (working copy) @@ -464,7 +464,7 @@ list.get_icon = get_icon; list.get_name = get_name; list.action_callback = list_action_callback; - rb->simplelist_show_list(&list); + rb->simplelist_show_list(&list, NULL); rb->global_settings->show_icons = show_icons; } break; Index: apps/gui/statusbar.c =================================================================== --- apps/gui/statusbar.c (revision 18912) +++ apps/gui/statusbar.c (working copy) @@ -800,6 +800,7 @@ #endif /* HAVE_LCD_BITMAP */ int i; FOR_NB_SCREENS(i) { + screens[i].set_viewport(NULL); gui_statusbar_draw( &(bars->statusbars[i]), force_redraw ); } } Index: apps/gui/list.c =================================================================== --- apps/gui/list.c (revision 18912) +++ apps/gui/list.c (working copy) @@ -842,7 +842,8 @@ return simplelist_text[item]; } -bool simplelist_show_list(struct simplelist_info *info) +bool simplelist_show_list(struct simplelist_info *info, + struct viewport parent[NB_SCREENS]) { struct gui_synclist lists; struct viewport vp[NB_SCREENS]; @@ -855,7 +856,10 @@ getname = simplelist_static_getname; FOR_NB_SCREENS(i) { - viewport_set_defaults(&vp[i], i); + if (!parent) + viewport_set_defaults(&vp[i], i); + else + vp[i] = parent[i]; } gui_synclist_init(&lists, getname, info->callback_data, info->scroll_all, info->selection_size, vp); Index: apps/gui/list.h =================================================================== --- apps/gui/list.h (revision 18912) +++ apps/gui/list.h (working copy) @@ -255,6 +255,6 @@ /* show a list. if list->action_callback != NULL it is called with the action ACTION_REDRAW before the list is dislplayed for the first time */ -bool simplelist_show_list(struct simplelist_info *info); +bool simplelist_show_list(struct simplelist_info *info, struct viewport parent[NB_SCREENS]); #endif /* _GUI_LIST_H_ */ Index: apps/menus/main_menu.c =================================================================== --- apps/menus/main_menu.c (revision 18912) +++ apps/menus/main_menu.c (working copy) @@ -473,12 +398,11 @@ if(global_settings.talk_menu) info.get_talk = info_speak_item; info.action_callback = info_action_callback; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } MENUITEM_FUNCTION(show_info_item, 0, ID2P(LANG_ROCKBOX_INFO), (menu_function)show_info, NULL, NULL, Icon_NOICON); - /* sleep Menu */ static void sleep_timer_formatter(char* buffer, size_t buffer_size, int value, const char* unit) Index: apps/plugin.h =================================================================== --- apps/plugin.h (revision 18912) +++ apps/plugin.h (working copy) @@ -332,7 +332,7 @@ const struct text_message * no_message); void (*simplelist_info_init)(struct simplelist_info *info, char* title, int count, void* data); - bool (*simplelist_show_list)(struct simplelist_info *info); + bool (*simplelist_show_list)(struct simplelist_info *info, struct viewport parent[NB_SCREENS]); /* button */ long (*button_get)(bool block); Index: apps/filetypes.c =================================================================== --- apps/filetypes.c (revision 18912) +++ apps/filetypes.c (working copy) @@ -493,7 +493,7 @@ info.action_callback = openwith_action_callback; info.get_name = openwith_get_name; info.get_icon = openwith_get_icon; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } int filetype_load_plugin(const char* plugin, char* file) Index: apps/debug_menu.c =================================================================== --- apps/debug_menu.c (revision 18912) +++ apps/debug_menu.c (working copy) @@ -217,7 +217,7 @@ #endif info.action_callback = dbg_threads_action_callback; info.get_name = threads_getname; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } #ifdef HAVE_LCD_BITMAP @@ -798,7 +798,7 @@ info.hide_selection = true; info.scroll_all = true; info.get_name = dbg_partitions_getname; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } #endif @@ -1528,7 +1528,7 @@ info.timeout = HZ/100; info.get_name = tsc2100_debug_getname; info.action_callback= tsc2100debug_action_callback; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } #endif #ifndef SIMULATOR @@ -1973,7 +1973,7 @@ info.action_callback = disk_callback; info.hide_selection = true; info.scroll_all = true; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } #endif /* !SIMULATOR */ @@ -2006,7 +2006,7 @@ info.action_callback = dircache_callback; info.hide_selection = true; info.scroll_all = true; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } #endif /* HAVE_DIRCACHE */ @@ -2070,7 +2070,7 @@ /* info.timeout = TIMEOUT_NOBLOCK; */ info.timeout = 1; tagcache_screensync_enable(true); - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } #endif @@ -2218,7 +2218,7 @@ info.action_callback = radio_hardware_present()?radio_callback : NULL; info.hide_selection = true; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); } #endif /* CONFIG_TUNER */ #endif /* !SIMULATOR */ @@ -2428,7 +2428,7 @@ isp1583.hide_selection = true; isp1583.get_name = dbg_usb_item; isp1583.action_callback = isp1583_action_callback; - return simplelist_show_list(&isp1583); + return simplelist_show_list(&isp1583, NULL); } #endif @@ -2453,7 +2453,7 @@ pic.hide_selection = true; pic.get_name = pic_dbg_item; pic.action_callback = pic_action_callback; - return simplelist_show_list(&pic); + return simplelist_show_list(&pic, NULL); } #endif @@ -2576,5 +2576,5 @@ info.action_callback = menu_action_callback; info.get_name = dbg_menu_getname; - return simplelist_show_list(&info); + return simplelist_show_list(&info, NULL); }