summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2009-01-07 07:52:32 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2009-01-07 07:52:32 +0000
commitf9329e4c9273f1b82aa5dbb36f243546ce55036d (patch)
treeb9904700ec79a7edd0fe54edcd95a44666f32aa5
parentf56298aee433847c21d5e81027bd6301ef590d13 (diff)
downloadrockbox-f9329e4c9273f1b82aa5dbb36f243546ce55036d.zip
rockbox-f9329e4c9273f1b82aa5dbb36f243546ce55036d.tar.gz
rockbox-f9329e4c9273f1b82aa5dbb36f243546ce55036d.tar.bz2
rockbox-f9329e4c9273f1b82aa5dbb36f243546ce55036d.tar.xz
Fix some wierdness with the debug menus...
Set the current viewport back to NULL after the list is finished drawing, Screens should be setting it before they start drawing so this probably only effects the debug menus. Also change how the statusbars are handled there to make things easier. (this change also forces the bars back on (if enabled) in the simple list widget.. hopefully this doesnt cause problems later) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19703 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/debug_menu.c37
-rw-r--r--apps/gui/bitmap/list.c1
-rw-r--r--apps/gui/list.c11
3 files changed, 7 insertions, 42 deletions
diff --git a/apps/debug_menu.c b/apps/debug_menu.c
index 1c53cf9..7567c64 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -233,7 +233,6 @@ static bool dbg_audio_thread(void)
struct audio_debug d;
lcd_setfont(FONT_SYSFIXED);
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -271,7 +270,6 @@ static bool dbg_audio_thread(void)
lcd_update();
}
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -308,7 +306,6 @@ static bool dbg_buffering_thread(void)
tick_add_task(dbg_audio_task);
lcd_setfont(FONT_SYSFIXED);
- viewportmanager_set_statusbar(false);
while(!done)
{
button = get_action(CONTEXT_STD,HZ/5);
@@ -399,7 +396,6 @@ static bool dbg_buffering_thread(void)
}
tick_remove_task(dbg_audio_task);
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
@@ -533,7 +529,6 @@ static bool dbg_hw_info(void)
lcd_setfont(FONT_SYSFIXED);
lcd_clear_display();
- viewportmanager_set_statusbar(false);
lcd_puts(0, 0, "[Hardware info]");
@@ -572,7 +567,6 @@ static bool dbg_hw_info(void)
int got_id; /* flag if we managed to get the flash IDs */
int oldmode; /* saved memory guard mode */
int line = 0;
- viewportmanager_set_statusbar(false);
oldmode = system_memory_guard(MEMGUARD_NONE); /* disable memory guard */
@@ -635,7 +629,6 @@ static bool dbg_hw_info(void)
lcd_setfont(FONT_SYSFIXED);
lcd_clear_display();
- viewportmanager_set_statusbar(false);
lcd_puts(0, line++, "[Hardware info]");
@@ -694,7 +687,6 @@ static bool dbg_hw_info(void)
/* Define this function in your target tree */
return __dbg_hw_info();
#endif /* CONFIG_CPU */
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -837,7 +829,6 @@ static bool dbg_spdif(void)
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
- viewportmanager_set_statusbar(false);
#ifdef HAVE_SPDIF_POWER
spdif_power_enable(true); /* We need SPDIF power for both sending & receiving */
@@ -990,7 +981,6 @@ static bool dbg_spdif(void)
spdif_power_enable(global_settings.spdif_enable);
#endif
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -1049,7 +1039,6 @@ bool dbg_ports(void)
lcd_setfont(FONT_SYSFIXED);
lcd_clear_display();
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -1075,7 +1064,6 @@ bool dbg_ports(void)
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -1096,7 +1084,6 @@ bool dbg_ports(void)
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -1163,7 +1150,6 @@ bool dbg_ports(void)
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -1176,7 +1162,6 @@ bool dbg_ports(void)
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -1275,7 +1260,6 @@ extern unsigned char serbuf[];
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -1287,7 +1271,6 @@ extern unsigned char serbuf[];
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -1319,12 +1302,10 @@ extern unsigned char serbuf[];
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
}
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
#else
return __dbg_ports();
@@ -1340,7 +1321,6 @@ bool dbg_ports(void)
int currval = 0;
lcd_clear_display();
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -1405,7 +1385,6 @@ bool dbg_ports(void)
break;
}
}
- viewportmanager_set_statusbar(true);
return false;
}
#endif /* !HAVE_LCD_BITMAP */
@@ -1421,7 +1400,6 @@ static bool dbg_pcf(void)
lcd_setfont(FONT_SYSFIXED);
#endif
lcd_clear_display();
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -1457,13 +1435,11 @@ static bool dbg_pcf(void)
lcd_update();
if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
{
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
}
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -1480,7 +1456,6 @@ static bool dbg_cpufreq(void)
lcd_setfont(FONT_SYSFIXED);
#endif
lcd_clear_display();
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -1512,12 +1487,10 @@ static bool dbg_cpufreq(void)
break;
case ACTION_STD_CANCEL:
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
}
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -1611,7 +1584,6 @@ static bool view_battery(void)
char buf[32];
lcd_setfont(FONT_SYSFIXED);
- viewportmanager_set_statusbar(false);
while(1)
{
@@ -1852,12 +1824,10 @@ static bool view_battery(void)
break;
case ACTION_STD_CANCEL:
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
}
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -2487,7 +2457,6 @@ static bool cpu_boost_log(void)
bool done;
lcd_setfont(FONT_SYSFIXED);
str = cpu_boost_log_getlog_first();
- viewportmanager_set_statusbar(false);
while (i < count)
{
lcd_clear_display();
@@ -2520,7 +2489,6 @@ static bool cpu_boost_log(void)
}
}
get_action(CONTEXT_STD,TIMEOUT_BLOCK);
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -2540,7 +2508,6 @@ static bool dbg_scrollwheel(void)
unsigned int speed;
lcd_setfont(FONT_SYSFIXED);
- viewportmanager_set_statusbar(false);
while (1)
{
@@ -2570,7 +2537,6 @@ static bool dbg_scrollwheel(void)
lcd_update();
}
- viewportmanager_set_statusbar(true);
lcd_setfont(FONT_UI);
return false;
}
@@ -2746,8 +2712,10 @@ static int menu_action_callback(int btn, struct gui_synclist *lists)
{
if (btn == ACTION_STD_OK)
{
+ bool oldbars = viewportmanager_set_statusbar(false);
menuitems[gui_synclist_get_sel_pos(lists)].function();
btn = ACTION_REDRAW;
+ viewportmanager_set_statusbar(oldbars);
}
return btn;
}
@@ -2764,6 +2732,5 @@ bool debug_menu(void)
simplelist_info_init(&info, "Debug Menu", ARRAYLEN(menuitems), NULL);
info.action_callback = menu_action_callback;
info.get_name = dbg_menu_getname;
-
return simplelist_show_list(&info);
}
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c
index 074f72a..6e18769 100644
--- a/apps/gui/bitmap/list.c
+++ b/apps/gui/bitmap/list.c
@@ -280,6 +280,7 @@ void list_draw(struct screen *display, struct gui_synclist *list)
}
display->set_viewport(parent);
display->update_viewport();
+ display->set_viewport(NULL);
}
diff --git a/apps/gui/list.c b/apps/gui/list.c
index 04bd7e4..2107d3a 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -844,20 +844,16 @@ static char* simplelist_static_getname(int item,
bool simplelist_show_list(struct simplelist_info *info)
{
struct gui_synclist lists;
- struct viewport vp[NB_SCREENS];
- int action, old_line_count = simplelist_line_count,i;
+ int action, old_line_count = simplelist_line_count;
+ bool oldbars = viewportmanager_set_statusbar(true);
char* (*getname)(int item, void * data, char *buffer, size_t buffer_len);
int wrap = LIST_WRAP_UNLESS_HELD;
if (info->get_name)
getname = info->get_name;
else
getname = simplelist_static_getname;
- FOR_NB_SCREENS(i)
- {
- viewport_set_defaults(&vp[i], i);
- }
gui_synclist_init(&lists, getname, info->callback_data,
- info->scroll_all, info->selection_size, vp);
+ info->scroll_all, info->selection_size, NULL);
if (info->title)
gui_synclist_set_title(&lists, info->title, NOICON);
@@ -929,6 +925,7 @@ bool simplelist_show_list(struct simplelist_info *info)
return true;
}
talk_shutup();
+ viewportmanager_set_statusbar(oldbars);
return false;
}