summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/gui/gwps-common.c3
-rw-r--r--apps/gui/statusbar.c2
-rw-r--r--apps/menu.c2
-rw-r--r--apps/plugins/battery_bench.c21
-rw-r--r--apps/plugins/firmware_flash.c2
-rw-r--r--apps/plugins/iriver_flash.c2
-rw-r--r--apps/plugins/lamp.c8
-rw-r--r--apps/plugins/rockbox_flash.c2
8 files changed, 26 insertions, 16 deletions
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c
index 2b1d641..e218c12 100644
--- a/apps/gui/gwps-common.c
+++ b/apps/gui/gwps-common.c
@@ -85,8 +85,7 @@ static void gui_wps_statusbar_draw(struct gui_wps *wps, bool force)
if (wps->data->wps_sb_tag)
draw = wps->data->show_sb_on_wps;
- if (!draw)
- viewportmanager_set_statusbar(false);
+ viewportmanager_set_statusbar(draw);
}
#else
#define gui_wps_statusbar_draw(wps, force)
diff --git a/apps/gui/statusbar.c b/apps/gui/statusbar.c
index 29b8011..b4e99f8 100644
--- a/apps/gui/statusbar.c
+++ b/apps/gui/statusbar.c
@@ -341,7 +341,7 @@ void gui_statusbar_draw(struct gui_statusbar * bar, bool force_redraw)
if(!display->has_disk_led && bar->info.led)
gui_statusbar_led(display);
#endif
- display->update_rect(0, 0, display->getwidth(), STATUSBAR_HEIGHT);
+ display->update_viewport();
bar->lastinfo = bar->info;
}
#endif /* HAVE_LCD_BITMAP */
diff --git a/apps/menu.c b/apps/menu.c
index b5309a0..419db3a 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -355,6 +355,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
const struct menu_item_ex *temp, *menu;
int ret = 0, i;
bool redraw_lists;
+ bool oldbars = viewportmanager_set_statusbar(!hide_bars);
const struct menu_item_ex *menu_stack[MAX_MENUS];
int menu_stack_selected_item[MAX_MENUS];
@@ -696,6 +697,7 @@ int do_menu(const struct menu_item_ex *start_menu, int *start_selected,
*start_selected = get_menu_selection(
gui_synclist_get_sel_pos(&lists), menu);
}
+ viewportmanager_set_statusbar(oldbars);
return ret;
}
diff --git a/apps/plugins/battery_bench.c b/apps/plugins/battery_bench.c
index 7c67cca..6559f53 100644
--- a/apps/plugins/battery_bench.c
+++ b/apps/plugins/battery_bench.c
@@ -224,6 +224,7 @@ static unsigned int buf_idx;
bool exit_tsr(bool reenter)
{
+ long button;
(void)reenter;
rb->lcd_clear_display();
rb->lcd_puts_scroll(0, 0, "Batt.Bench is currently running.");
@@ -233,15 +234,21 @@ bool exit_tsr(bool reenter)
#endif
rb->lcd_update();
- if (rb->button_get(true) == BATTERY_OFF)
+ while (1)
{
- rb->queue_post(&thread_q, EV_EXIT, 0);
- rb->thread_wait(thread_id);
- /* remove the thread's queue from the broadcast list */
- rb->queue_delete(&thread_q);
- return true;
+ button = rb->button_get(true);
+ if (IS_SYSEVENT(button))
+ continue;
+ if (button == BATTERY_OFF)
+ {
+ rb->queue_post(&thread_q, EV_EXIT, 0);
+ rb->thread_wait(thread_id);
+ /* remove the thread's queue from the broadcast list */
+ rb->queue_delete(&thread_q);
+ return true;
+ }
+ else return false;
}
- else return false;
}
#define BIT_CHARGER 0x1
diff --git a/apps/plugins/firmware_flash.c b/apps/plugins/firmware_flash.c
index 376ae7f..6380f6d 100644
--- a/apps/plugins/firmware_flash.c
+++ b/apps/plugins/firmware_flash.c
@@ -592,7 +592,7 @@ int WaitForButton(void)
do
{
button = rb->button_get(true);
- } while (button & BUTTON_REL);
+ } while (IS_SYSEVENT(button) || (button & BUTTON_REL));
return button;
}
diff --git a/apps/plugins/iriver_flash.c b/apps/plugins/iriver_flash.c
index 9f26f82..e7ae056 100644
--- a/apps/plugins/iriver_flash.c
+++ b/apps/plugins/iriver_flash.c
@@ -230,7 +230,7 @@ int wait_for_button(void)
do
{
button = rb->button_get(true);
- } while (button & BUTTON_REL);
+ } while (IS_SYSEVENT(button) || (button & BUTTON_REL));
return button;
}
diff --git a/apps/plugins/lamp.c b/apps/plugins/lamp.c
index e355ee4..ace6545 100644
--- a/apps/plugins/lamp.c
+++ b/apps/plugins/lamp.c
@@ -110,6 +110,7 @@ static int colorset[NUM_COLORSETS][3] = { { 255, 255, 255 } , /* white */
/* this is the plugin entry point */
enum plugin_status plugin_start(const struct plugin_api* api, const void* parameter)
{
+ long button;
(void)parameter;
rb = api;
@@ -167,7 +168,7 @@ enum plugin_status plugin_start(const struct plugin_api* api, const void* parame
rb->lcd_clear_display();
rb->lcd_update();
- switch(rb->button_get(true))
+ switch((button = rb->button_get(true)))
{
case LAMP_RIGHT:
#ifdef LAMP_NEXT
@@ -196,9 +197,10 @@ enum plugin_status plugin_start(const struct plugin_api* api, const void* parame
case (LAMP_PREV|BUTTON_REL):
#endif /* LAMP_PREV */
/* eat these... */
- break;
+ break;
default:
- quit = true;
+ if (!IS_SYSEVENT(button))
+ quit = true;
}
} while (!quit);
diff --git a/apps/plugins/rockbox_flash.c b/apps/plugins/rockbox_flash.c
index 6323ca9..d0dc738 100644
--- a/apps/plugins/rockbox_flash.c
+++ b/apps/plugins/rockbox_flash.c
@@ -516,7 +516,7 @@ static int WaitForButton(void)
do
{
button = rb->button_get(true);
- } while (button & BUTTON_REL);
+ } while (IS_SYSEVENT(button) || (button & BUTTON_REL));
return button;
}