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.tar.gz
rockbox-f9329e4c9273f1b82aa5dbb36f243546ce55036d.zip
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 1c53cf9678..7567c64a21 100644
--- a/apps/debug_menu.c
+++ b/apps/debug_menu.c
@@ -233,7 +233,6 @@ static bool dbg_audio_thread(void)
233 struct audio_debug d; 233 struct audio_debug d;
234 234
235 lcd_setfont(FONT_SYSFIXED); 235 lcd_setfont(FONT_SYSFIXED);
236 viewportmanager_set_statusbar(false);
237 236
238 while(1) 237 while(1)
239 { 238 {
@@ -271,7 +270,6 @@ static bool dbg_audio_thread(void)
271 270
272 lcd_update(); 271 lcd_update();
273 } 272 }
274 viewportmanager_set_statusbar(true);
275 lcd_setfont(FONT_UI); 273 lcd_setfont(FONT_UI);
276 return false; 274 return false;
277} 275}
@@ -308,7 +306,6 @@ static bool dbg_buffering_thread(void)
308 tick_add_task(dbg_audio_task); 306 tick_add_task(dbg_audio_task);
309 307
310 lcd_setfont(FONT_SYSFIXED); 308 lcd_setfont(FONT_SYSFIXED);
311 viewportmanager_set_statusbar(false);
312 while(!done) 309 while(!done)
313 { 310 {
314 button = get_action(CONTEXT_STD,HZ/5); 311 button = get_action(CONTEXT_STD,HZ/5);
@@ -399,7 +396,6 @@ static bool dbg_buffering_thread(void)
399 } 396 }
400 397
401 tick_remove_task(dbg_audio_task); 398 tick_remove_task(dbg_audio_task);
402 viewportmanager_set_statusbar(true);
403 lcd_setfont(FONT_UI); 399 lcd_setfont(FONT_UI);
404 400
405 return false; 401 return false;
@@ -533,7 +529,6 @@ static bool dbg_hw_info(void)
533 529
534 lcd_setfont(FONT_SYSFIXED); 530 lcd_setfont(FONT_SYSFIXED);
535 lcd_clear_display(); 531 lcd_clear_display();
536 viewportmanager_set_statusbar(false);
537 532
538 lcd_puts(0, 0, "[Hardware info]"); 533 lcd_puts(0, 0, "[Hardware info]");
539 534
@@ -572,7 +567,6 @@ static bool dbg_hw_info(void)
572 int got_id; /* flag if we managed to get the flash IDs */ 567 int got_id; /* flag if we managed to get the flash IDs */
573 int oldmode; /* saved memory guard mode */ 568 int oldmode; /* saved memory guard mode */
574 int line = 0; 569 int line = 0;
575 viewportmanager_set_statusbar(false);
576 570
577 oldmode = system_memory_guard(MEMGUARD_NONE); /* disable memory guard */ 571 oldmode = system_memory_guard(MEMGUARD_NONE); /* disable memory guard */
578 572
@@ -635,7 +629,6 @@ static bool dbg_hw_info(void)
635 629
636 lcd_setfont(FONT_SYSFIXED); 630 lcd_setfont(FONT_SYSFIXED);
637 lcd_clear_display(); 631 lcd_clear_display();
638 viewportmanager_set_statusbar(false);
639 632
640 lcd_puts(0, line++, "[Hardware info]"); 633 lcd_puts(0, line++, "[Hardware info]");
641 634
@@ -694,7 +687,6 @@ static bool dbg_hw_info(void)
694 /* Define this function in your target tree */ 687 /* Define this function in your target tree */
695 return __dbg_hw_info(); 688 return __dbg_hw_info();
696#endif /* CONFIG_CPU */ 689#endif /* CONFIG_CPU */
697 viewportmanager_set_statusbar(true);
698 lcd_setfont(FONT_UI); 690 lcd_setfont(FONT_UI);
699 return false; 691 return false;
700} 692}
@@ -837,7 +829,6 @@ static bool dbg_spdif(void)
837 829
838 lcd_clear_display(); 830 lcd_clear_display();
839 lcd_setfont(FONT_SYSFIXED); 831 lcd_setfont(FONT_SYSFIXED);
840 viewportmanager_set_statusbar(false);
841 832
842#ifdef HAVE_SPDIF_POWER 833#ifdef HAVE_SPDIF_POWER
843 spdif_power_enable(true); /* We need SPDIF power for both sending & receiving */ 834 spdif_power_enable(true); /* We need SPDIF power for both sending & receiving */
@@ -990,7 +981,6 @@ static bool dbg_spdif(void)
990 spdif_power_enable(global_settings.spdif_enable); 981 spdif_power_enable(global_settings.spdif_enable);
991#endif 982#endif
992 983
993 viewportmanager_set_statusbar(true);
994 lcd_setfont(FONT_UI); 984 lcd_setfont(FONT_UI);
995 return false; 985 return false;
996} 986}
@@ -1049,7 +1039,6 @@ bool dbg_ports(void)
1049 1039
1050 lcd_setfont(FONT_SYSFIXED); 1040 lcd_setfont(FONT_SYSFIXED);
1051 lcd_clear_display(); 1041 lcd_clear_display();
1052 viewportmanager_set_statusbar(false);
1053 1042
1054 while(1) 1043 while(1)
1055 { 1044 {
@@ -1075,7 +1064,6 @@ bool dbg_ports(void)
1075 lcd_update(); 1064 lcd_update();
1076 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1065 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1077 { 1066 {
1078 viewportmanager_set_statusbar(true);
1079 lcd_setfont(FONT_UI); 1067 lcd_setfont(FONT_UI);
1080 return false; 1068 return false;
1081 } 1069 }
@@ -1096,7 +1084,6 @@ bool dbg_ports(void)
1096 1084
1097 lcd_clear_display(); 1085 lcd_clear_display();
1098 lcd_setfont(FONT_SYSFIXED); 1086 lcd_setfont(FONT_SYSFIXED);
1099 viewportmanager_set_statusbar(false);
1100 1087
1101 while(1) 1088 while(1)
1102 { 1089 {
@@ -1163,7 +1150,6 @@ bool dbg_ports(void)
1163 lcd_update(); 1150 lcd_update();
1164 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1151 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1165 { 1152 {
1166 viewportmanager_set_statusbar(true);
1167 lcd_setfont(FONT_UI); 1153 lcd_setfont(FONT_UI);
1168 return false; 1154 return false;
1169 } 1155 }
@@ -1176,7 +1162,6 @@ bool dbg_ports(void)
1176 1162
1177 lcd_clear_display(); 1163 lcd_clear_display();
1178 lcd_setfont(FONT_SYSFIXED); 1164 lcd_setfont(FONT_SYSFIXED);
1179 viewportmanager_set_statusbar(false);
1180 1165
1181 while(1) 1166 while(1)
1182 { 1167 {
@@ -1275,7 +1260,6 @@ extern unsigned char serbuf[];
1275 lcd_update(); 1260 lcd_update();
1276 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1261 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1277 { 1262 {
1278 viewportmanager_set_statusbar(true);
1279 lcd_setfont(FONT_UI); 1263 lcd_setfont(FONT_UI);
1280 return false; 1264 return false;
1281 } 1265 }
@@ -1287,7 +1271,6 @@ extern unsigned char serbuf[];
1287 1271
1288 lcd_clear_display(); 1272 lcd_clear_display();
1289 lcd_setfont(FONT_SYSFIXED); 1273 lcd_setfont(FONT_SYSFIXED);
1290 viewportmanager_set_statusbar(false);
1291 1274
1292 while(1) 1275 while(1)
1293 { 1276 {
@@ -1319,12 +1302,10 @@ extern unsigned char serbuf[];
1319 lcd_update(); 1302 lcd_update();
1320 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1303 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1321 { 1304 {
1322 viewportmanager_set_statusbar(true);
1323 lcd_setfont(FONT_UI); 1305 lcd_setfont(FONT_UI);
1324 return false; 1306 return false;
1325 } 1307 }
1326 } 1308 }
1327 viewportmanager_set_statusbar(true);
1328 lcd_setfont(FONT_UI); 1309 lcd_setfont(FONT_UI);
1329#else 1310#else
1330 return __dbg_ports(); 1311 return __dbg_ports();
@@ -1340,7 +1321,6 @@ bool dbg_ports(void)
1340 int currval = 0; 1321 int currval = 0;
1341 1322
1342 lcd_clear_display(); 1323 lcd_clear_display();
1343 viewportmanager_set_statusbar(false);
1344 1324
1345 while(1) 1325 while(1)
1346 { 1326 {
@@ -1405,7 +1385,6 @@ bool dbg_ports(void)
1405 break; 1385 break;
1406 } 1386 }
1407 } 1387 }
1408 viewportmanager_set_statusbar(true);
1409 return false; 1388 return false;
1410} 1389}
1411#endif /* !HAVE_LCD_BITMAP */ 1390#endif /* !HAVE_LCD_BITMAP */
@@ -1421,7 +1400,6 @@ static bool dbg_pcf(void)
1421 lcd_setfont(FONT_SYSFIXED); 1400 lcd_setfont(FONT_SYSFIXED);
1422#endif 1401#endif
1423 lcd_clear_display(); 1402 lcd_clear_display();
1424 viewportmanager_set_statusbar(false);
1425 1403
1426 while(1) 1404 while(1)
1427 { 1405 {
@@ -1457,13 +1435,11 @@ static bool dbg_pcf(void)
1457 lcd_update(); 1435 lcd_update();
1458 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL)) 1436 if (button_get_w_tmo(HZ/10) == (DEBUG_CANCEL|BUTTON_REL))
1459 { 1437 {
1460 viewportmanager_set_statusbar(true);
1461 lcd_setfont(FONT_UI); 1438 lcd_setfont(FONT_UI);
1462 return false; 1439 return false;
1463 } 1440 }
1464 } 1441 }
1465 1442
1466 viewportmanager_set_statusbar(true);
1467 lcd_setfont(FONT_UI); 1443 lcd_setfont(FONT_UI);
1468 return false; 1444 return false;
1469} 1445}
@@ -1480,7 +1456,6 @@ static bool dbg_cpufreq(void)
1480 lcd_setfont(FONT_SYSFIXED); 1456 lcd_setfont(FONT_SYSFIXED);
1481#endif 1457#endif
1482 lcd_clear_display(); 1458 lcd_clear_display();
1483 viewportmanager_set_statusbar(false);
1484 1459
1485 while(1) 1460 while(1)
1486 { 1461 {
@@ -1512,12 +1487,10 @@ static bool dbg_cpufreq(void)
1512 break; 1487 break;
1513 1488
1514 case ACTION_STD_CANCEL: 1489 case ACTION_STD_CANCEL:
1515 viewportmanager_set_statusbar(true);
1516 lcd_setfont(FONT_UI); 1490 lcd_setfont(FONT_UI);
1517 return false; 1491 return false;
1518 } 1492 }
1519 } 1493 }
1520 viewportmanager_set_statusbar(true);
1521 lcd_setfont(FONT_UI); 1494 lcd_setfont(FONT_UI);
1522 return false; 1495 return false;
1523} 1496}
@@ -1611,7 +1584,6 @@ static bool view_battery(void)
1611 char buf[32]; 1584 char buf[32];
1612 1585
1613 lcd_setfont(FONT_SYSFIXED); 1586 lcd_setfont(FONT_SYSFIXED);
1614 viewportmanager_set_statusbar(false);
1615 1587
1616 while(1) 1588 while(1)
1617 { 1589 {
@@ -1852,12 +1824,10 @@ static bool view_battery(void)
1852 break; 1824 break;
1853 1825
1854 case ACTION_STD_CANCEL: 1826 case ACTION_STD_CANCEL:
1855 viewportmanager_set_statusbar(true);
1856 lcd_setfont(FONT_UI); 1827 lcd_setfont(FONT_UI);
1857 return false; 1828 return false;
1858 } 1829 }
1859 } 1830 }
1860 viewportmanager_set_statusbar(true);
1861 lcd_setfont(FONT_UI); 1831 lcd_setfont(FONT_UI);
1862 return false; 1832 return false;
1863} 1833}
@@ -2487,7 +2457,6 @@ static bool cpu_boost_log(void)
2487 bool done; 2457 bool done;
2488 lcd_setfont(FONT_SYSFIXED); 2458 lcd_setfont(FONT_SYSFIXED);
2489 str = cpu_boost_log_getlog_first(); 2459 str = cpu_boost_log_getlog_first();
2490 viewportmanager_set_statusbar(false);
2491 while (i < count) 2460 while (i < count)
2492 { 2461 {
2493 lcd_clear_display(); 2462 lcd_clear_display();
@@ -2520,7 +2489,6 @@ static bool cpu_boost_log(void)
2520 } 2489 }
2521 } 2490 }
2522 get_action(CONTEXT_STD,TIMEOUT_BLOCK); 2491 get_action(CONTEXT_STD,TIMEOUT_BLOCK);
2523 viewportmanager_set_statusbar(true);
2524 lcd_setfont(FONT_UI); 2492 lcd_setfont(FONT_UI);
2525 return false; 2493 return false;
2526} 2494}
@@ -2540,7 +2508,6 @@ static bool dbg_scrollwheel(void)
2540 unsigned int speed; 2508 unsigned int speed;
2541 2509
2542 lcd_setfont(FONT_SYSFIXED); 2510 lcd_setfont(FONT_SYSFIXED);
2543 viewportmanager_set_statusbar(false);
2544 2511
2545 while (1) 2512 while (1)
2546 { 2513 {
@@ -2570,7 +2537,6 @@ static bool dbg_scrollwheel(void)
2570 2537
2571 lcd_update(); 2538 lcd_update();
2572 } 2539 }
2573 viewportmanager_set_statusbar(true);
2574 lcd_setfont(FONT_UI); 2540 lcd_setfont(FONT_UI);
2575 return false; 2541 return false;
2576} 2542}
@@ -2746,8 +2712,10 @@ static int menu_action_callback(int btn, struct gui_synclist *lists)
2746{ 2712{
2747 if (btn == ACTION_STD_OK) 2713 if (btn == ACTION_STD_OK)
2748 { 2714 {
2715 bool oldbars = viewportmanager_set_statusbar(false);
2749 menuitems[gui_synclist_get_sel_pos(lists)].function(); 2716 menuitems[gui_synclist_get_sel_pos(lists)].function();
2750 btn = ACTION_REDRAW; 2717 btn = ACTION_REDRAW;
2718 viewportmanager_set_statusbar(oldbars);
2751 } 2719 }
2752 return btn; 2720 return btn;
2753} 2721}
@@ -2764,6 +2732,5 @@ bool debug_menu(void)
2764 simplelist_info_init(&info, "Debug Menu", ARRAYLEN(menuitems), NULL); 2732 simplelist_info_init(&info, "Debug Menu", ARRAYLEN(menuitems), NULL);
2765 info.action_callback = menu_action_callback; 2733 info.action_callback = menu_action_callback;
2766 info.get_name = dbg_menu_getname; 2734 info.get_name = dbg_menu_getname;
2767
2768 return simplelist_show_list(&info); 2735 return simplelist_show_list(&info);
2769} 2736}
diff --git a/apps/gui/bitmap/list.c b/apps/gui/bitmap/list.c
index 074f72a179..6e1876912e 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)
280 } 280 }
281 display->set_viewport(parent); 281 display->set_viewport(parent);
282 display->update_viewport(); 282 display->update_viewport();
283 display->set_viewport(NULL);
283} 284}
284 285
285 286
diff --git a/apps/gui/list.c b/apps/gui/list.c
index 04bd7e4c3f..2107d3a593 100644
--- a/apps/gui/list.c
+++ b/apps/gui/list.c
@@ -844,20 +844,16 @@ static char* simplelist_static_getname(int item,
844bool simplelist_show_list(struct simplelist_info *info) 844bool simplelist_show_list(struct simplelist_info *info)
845{ 845{
846 struct gui_synclist lists; 846 struct gui_synclist lists;
847 struct viewport vp[NB_SCREENS]; 847 int action, old_line_count = simplelist_line_count;
848 int action, old_line_count = simplelist_line_count,i; 848 bool oldbars = viewportmanager_set_statusbar(true);
849 char* (*getname)(int item, void * data, char *buffer, size_t buffer_len); 849 char* (*getname)(int item, void * data, char *buffer, size_t buffer_len);
850 int wrap = LIST_WRAP_UNLESS_HELD; 850 int wrap = LIST_WRAP_UNLESS_HELD;
851 if (info->get_name) 851 if (info->get_name)
852 getname = info->get_name; 852 getname = info->get_name;
853 else 853 else
854 getname = simplelist_static_getname; 854 getname = simplelist_static_getname;
855 FOR_NB_SCREENS(i)
856 {
857 viewport_set_defaults(&vp[i], i);
858 }
859 gui_synclist_init(&lists, getname, info->callback_data, 855 gui_synclist_init(&lists, getname, info->callback_data,
860 info->scroll_all, info->selection_size, vp); 856 info->scroll_all, info->selection_size, NULL);
861 857
862 if (info->title) 858 if (info->title)
863 gui_synclist_set_title(&lists, info->title, NOICON); 859 gui_synclist_set_title(&lists, info->title, NOICON);
@@ -929,6 +925,7 @@ bool simplelist_show_list(struct simplelist_info *info)
929 return true; 925 return true;
930 } 926 }
931 talk_shutup(); 927 talk_shutup();
928 viewportmanager_set_statusbar(oldbars);
932 return false; 929 return false;
933} 930}
934 931