diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/recorder/keyboard.c | 28 |
1 files changed, 19 insertions, 9 deletions
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c index 9b4240b8ba..52aaf9a19c 100644 --- a/apps/recorder/keyboard.c +++ b/apps/recorder/keyboard.c @@ -574,7 +574,7 @@ int kbd_input(char* text, int buflen) screens[l].update(); button = get_action(CONTEXT_KEYBOARD,HZ/2); -#ifdef KBD_MORSE_INPUT +#if defined KBD_MORSE_INPUT && !defined KBD_MODES if (morse_mode) { /* Remap some buttons for morse mode. */ @@ -631,12 +631,13 @@ int kbd_input(char* text, int buflen) #endif case ACTION_KBD_RIGHT: -#ifdef KBD_MORSE_INPUT - if (morse_mode) - break; -#endif #ifdef KBD_MODES +#ifdef KBD_MORSE_INPUT + if (line_edit || morse_mode) /* allow cursor change in non line + edit morse mode */ +#else if (line_edit) /* right doubles as cursor_right in line_edit */ +#endif { if (hangul) hangul = false; @@ -651,6 +652,10 @@ int kbd_input(char* text, int buflen) else #endif { +#ifdef KBD_MORSE_INPUT + if (morse_mode) + break; +#endif FOR_NB_SCREENS(l) { if (++param[l].x == param[l].max_chars) { @@ -668,12 +673,13 @@ int kbd_input(char* text, int buflen) break; case ACTION_KBD_LEFT: -#ifdef KBD_MORSE_INPUT - if (morse_mode) - break; -#endif #ifdef KBD_MODES +#ifdef KBD_MORSE_INPUT + if (line_edit || morse_mode) /* allow cursor change in non line + edit morse mode */ +#else if (line_edit) /* left doubles as cursor_left in line_edit */ +#endif { if (hangul) hangul = false; @@ -688,6 +694,10 @@ int kbd_input(char* text, int buflen) else #endif { +#ifdef KBD_MORSE_INPUT + if (morse_mode) + break; +#endif FOR_NB_SCREENS(l) { if (param[l].x) |