From 7e428ad190dd8d928fbb1451a7bb81dd4e856258 Mon Sep 17 00:00:00 2001 From: Aidan MacDonald Date: Thu, 26 Aug 2021 20:50:52 +0100 Subject: touchscreen: force 3x3 mode in the keyboard In absolute pointing mode the keyboard is virtually unusable since the keys are too tiny (just 8x6). There are other issues too: for example putting the keys on top doesn't make sense on touchscreens and there is a lot of empty space in between keys that serves no real purpose. Until these issues can be addressed properly simply force 3x3 mode when in the keyboard. Change-Id: I3ea95ae479372f5b5f86ffcc2dbde10a03663820 --- apps/recorder/keyboard.c | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'apps') diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c index 9586385d3e..fd6099c8c6 100644 --- a/apps/recorder/keyboard.c +++ b/apps/recorder/keyboard.c @@ -342,6 +342,13 @@ int kbd_input(char* text, int buflen, unsigned short *kbd) viewportmanager_theme_enable(l, false, NULL); } +#ifdef HAVE_TOUCHSCREEN + /* keyboard is unusuable in pointing mode so force 3x3 for now. + * TODO - fix properly by using a bigger font and changing the layout */ + enum touchscreen_mode old_mode = touchscreen_get_mode(); + touchscreen_set_mode(TOUCHSCREEN_BUTTON); +#endif + /* initialize state */ state.text = text; state.buflen = buflen; @@ -680,6 +687,10 @@ int kbd_input(char* text, int buflen, unsigned short *kbd) if (ret < 0) splash(HZ/2, ID2P(LANG_CANCEL)); +#ifdef HAVE_TOUCHSCREEN + touchscreen_set_mode(old_mode); +#endif + #if defined(HAVE_MORSE_INPUT) && defined(KBD_TOGGLE_INPUT) if (global_settings.morse_input != state.morse_mode) { -- cgit v1.2.3