Index: apps/recorder/keyboard.c =================================================================== --- apps/recorder/keyboard.c (revision 23470) +++ apps/recorder/keyboard.c (working copy) @@ -311,6 +311,11 @@ unsigned char morse_code = 0; int morse_tick = 0; #endif +#ifdef HAVE_TOUCHSCREEN + /* Set touchscreen to button mode */ + enum touchscreen_mode old_mode = touchscreen_get_mode(); + touchscreen_set_mode(TOUCHSCREEN_BUTTON); +#endif int oldbars = viewportmanager_set_statusbar(VP_SB_HIDE_ALL); FOR_NB_SCREENS(l) { @@ -1252,6 +1257,9 @@ FOR_NB_SCREENS(l) screens[l].setfont(FONT_UI); +#ifdef HAVE_TOUCHSCREEN + touchscreen_set_mode(old_mode); +#endif viewportmanager_set_statusbar(oldbars); send_event(GUI_EVENT_REFRESH, NULL); Index: apps/gui/yesno.c =================================================================== --- apps/gui/yesno.c (revision 23470) +++ apps/gui/yesno.c (working copy) @@ -137,6 +137,13 @@ struct gui_yesno yn[NB_SCREENS]; struct viewport vp[NB_SCREENS]; long talked_tick = 0; + +#ifdef HAVE_TOUCHSCREEN + /* Set touchscreen to button mode */ + enum touchscreen_mode old_mode = touchscreen_get_mode(); + touchscreen_set_mode(TOUCHSCREEN_BUTTON); +#endif + FOR_NB_SCREENS(i) { yn[i].main_message=main_message; @@ -188,5 +195,11 @@ FOR_NB_SCREENS(i) /* stop scrolling before getting out */ screens[i].scroll_stop(yn[i].vp); + +#ifdef HAVE_TOUCHSCREEN + /* Exiting, set the touchscreen back to the global setting */ + touchscreen_set_mode(old_mode); +#endif + return(result); }