summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTeruaki Kawashima <teru@rockbox.org>2009-11-08 14:24:47 +0000
committerTeruaki Kawashima <teru@rockbox.org>2009-11-08 14:24:47 +0000
commit40638bf2c73623bd00a4d669d3d0cd2eb01ff587 (patch)
treebdc98fcc12a584abc65974e4967c03f922e375d2
parent3e489c14c143bb2f193e97fa66385e8a285d43ff (diff)
downloadrockbox-40638bf2c73623bd00a4d669d3d0cd2eb01ff587.tar.gz
rockbox-40638bf2c73623bd00a4d669d3d0cd2eb01ff587.zip
Merge duplicating code to remove char in keyboard.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23569 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/recorder/keyboard.c50
1 files changed, 11 insertions, 39 deletions
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c
index 1e9e8f32ab..2c40ae7ede 100644
--- a/apps/recorder/keyboard.c
+++ b/apps/recorder/keyboard.c
@@ -788,6 +788,11 @@ int kbd_input(char* text, int buflen)
788 button = ACTION_KBD_CURSOR_LEFT; 788 button = ACTION_KBD_CURSOR_LEFT;
789 if (button == ACTION_KBD_RIGHT) 789 if (button == ACTION_KBD_RIGHT)
790 button = ACTION_KBD_CURSOR_RIGHT; 790 button = ACTION_KBD_CURSOR_RIGHT;
791#ifdef KBD_MODES
792 /* select doubles as backspace in line_edit */
793 if (pm->line_edit && button == ACTION_KBD_SELECT)
794 button = ACTION_KBD_BACKSPACE;
795#endif
791 } 796 }
792#endif /* defined(KBD_MODES) || defined(HAVE_MORSE_INPUT) */ 797#endif /* defined(KBD_MODES) || defined(HAVE_MORSE_INPUT) */
793 798
@@ -971,11 +976,7 @@ int kbd_input(char* text, int buflen)
971 976
972 case ACTION_KBD_SELECT: 977 case ACTION_KBD_SELECT:
973#ifdef HAVE_MORSE_INPUT 978#ifdef HAVE_MORSE_INPUT
974#ifdef KBD_MODES
975 if (morse_mode && !pm->line_edit)
976#else
977 if (morse_mode) 979 if (morse_mode)
978#endif
979 { 980 {
980 morse_tick = current_tick; 981 morse_tick = current_tick;
981 982
@@ -984,38 +985,11 @@ int kbd_input(char* text, int buflen)
984 morse_reading = true; 985 morse_reading = true;
985 morse_code = 1; 986 morse_code = 1;
986 } 987 }
987 break;
988 }
989#endif /* HAVE_MORSE_INPUT */
990
991 /* inserts the selected char */
992#ifdef KBD_MODES
993 if (pm->line_edit)
994 { /* select doubles as backspace in line_edit */
995 if (pm->hangul)
996 {
997 if (pm->htail)
998 pm->htail = 0;
999 else if (pm->hvowel)
1000 pm->hvowel = 0;
1001 else
1002 pm->hangul = false;
1003 }
1004
1005 kbd_delchar(text, &editpos);
1006
1007 if (pm->hangul)
1008 {
1009 if (pm->hvowel)
1010 ch = hangul_join(pm->hlead, pm->hvowel, pm->htail);
1011 else
1012 ch = pm->hlead;
1013 kbd_inschar(text, buflen, &editpos, ch);
1014 }
1015 } 988 }
1016 else 989 else
1017#endif /* KBD_MODES */ 990#endif /* HAVE_MORSE_INPUT */
1018 { 991 {
992 /* inserts the selected char */
1019 /* find input char */ 993 /* find input char */
1020 ch = get_kbd_ch(pm); 994 ch = get_kbd_ch(pm);
1021 995
@@ -1082,15 +1056,14 @@ int kbd_input(char* text, int buflen)
1082 1056
1083 /* insert char */ 1057 /* insert char */
1084 kbd_inschar(text, buflen, &editpos, ch); 1058 kbd_inschar(text, buflen, &editpos, ch);
1085 }
1086 1059
1087 if (global_settings.talk_menu) /* voice UI? */ 1060 if (global_settings.talk_menu) /* voice UI? */
1088 talk_spell(text, false); 1061 talk_spell(text, false);
1089 1062
1090 /* speak revised text */ 1063 /* speak revised text */
1064 }
1091 break; 1065 break;
1092 1066
1093#ifdef KBD_CURSOR_KEYS
1094 case ACTION_KBD_BACKSPACE: 1067 case ACTION_KBD_BACKSPACE:
1095 if (pm->hangul) 1068 if (pm->hangul)
1096 { 1069 {
@@ -1116,7 +1089,6 @@ int kbd_input(char* text, int buflen)
1116 if (global_settings.talk_menu) /* voice UI? */ 1089 if (global_settings.talk_menu) /* voice UI? */
1117 talk_spell(text, false); /* speak revised text */ 1090 talk_spell(text, false); /* speak revised text */
1118 break; 1091 break;
1119#endif /* KBD_CURSOR_KEYS */
1120 1092
1121 case ACTION_KBD_CURSOR_RIGHT: 1093 case ACTION_KBD_CURSOR_RIGHT:
1122 pm->hangul = false; 1094 pm->hangul = false;