From bccfae0a58515e489c3aa7f412154db56ae205d6 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Mon, 21 Nov 2005 18:39:18 +0000 Subject: Fixed crash with early USB. The USB screen already uses some of the new GUI code, so we have to init before. Fixed problem with gui_syncstatusbar_init() drawing the status bar(s) right away. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8030 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/statusbar.c | 7 ------- apps/gui/statusbar.h | 3 ++- apps/main.c | 7 +++++++ apps/tree.c | 3 --- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c index 70fe77facd..eec031fa93 100644 --- a/apps/gui/statusbar.c +++ b/apps/gui/statusbar.c @@ -95,13 +95,6 @@ void gui_statusbar_init(struct gui_statusbar * bar) #endif } -void gui_statusbar_set_screen(struct gui_statusbar * bar, - struct screen * display) -{ - bar->display = display; - gui_statusbar_draw(bar, false); -} - void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw) { struct screen * display = bar->display; diff --git a/apps/gui/statusbar.h b/apps/gui/statusbar.h index 77ceefd69f..e7fe92eaf9 100644 --- a/apps/gui/statusbar.h +++ b/apps/gui/statusbar.h @@ -85,7 +85,8 @@ extern void gui_statusbar_init(struct gui_statusbar * bar); * - bar : the statusbar structure * - display : the screen to attach */ -extern void gui_statusbar_set_screen(struct gui_statusbar * bar, struct screen * display); +#define gui_statusbar_set_screen(gui_statusbar, screen) \ + (gui_statusbar)->display = screen /* * Draws the status bar on the attached screen diff --git a/apps/main.c b/apps/main.c index 4f23dfaba4..9afb3e9a13 100644 --- a/apps/main.c +++ b/apps/main.c @@ -148,6 +148,9 @@ void init(void) font_init(); show_logo(); lang_init(); + /* Must be done before any code uses the multi-screen APi */ + screen_access_init(); + gui_syncstatusbar_init(&statusbars); settings_reset(); settings_calc_config_sector(); settings_load(SETTINGS_ALL); @@ -245,6 +248,10 @@ void init(void) radio_init(); #endif + /* Must be done before any code uses the multi-screen APi */ + screen_access_init(); + gui_syncstatusbar_init(&statusbars); + #if defined(HAVE_CHARGING) && (CONFIG_CPU == SH7034) if (coldstart && charger_inserted() && !global_settings.car_adapter_mode diff --git a/apps/tree.c b/apps/tree.c index f484463d2d..bed4fb28fc 100644 --- a/apps/tree.c +++ b/apps/tree.c @@ -213,8 +213,6 @@ bool check_rockboxdir(void) void browse_root(void) { - /* essential to all programs that wants to display things */ - screen_access_init(); gui_sync_wps_screen_init(); filetype_init(); @@ -232,7 +230,6 @@ void browse_root(void) /* since archos only have one screen, no need to create more than that */ gui_buttonbar_set_display(&tree_buttonbar, &(screens[SCREEN_MAIN]) ); #endif - gui_syncstatusbar_init(&statusbars); gui_synclist_init(&tree_lists, &tree_get_filename, &tc); gui_synclist_set_icon_callback(&tree_lists, global_settings.show_icons?&tree_get_fileicon:NULL); -- cgit v1.2.3