diff options
Diffstat (limited to 'apps/recorder')
-rw-r--r-- | apps/recorder/keyboard.c | 249 |
1 files changed, 28 insertions, 221 deletions
diff --git a/apps/recorder/keyboard.c b/apps/recorder/keyboard.c index 8f35b12d4b..8e82ab58f9 100644 --- a/apps/recorder/keyboard.c +++ b/apps/recorder/keyboard.c | |||
@@ -36,6 +36,7 @@ | |||
36 | #include "icons.h" | 36 | #include "icons.h" |
37 | #include "file.h" | 37 | #include "file.h" |
38 | #include "hangul.h" | 38 | #include "hangul.h" |
39 | #include "action.h" | ||
39 | 40 | ||
40 | #ifndef O_BINARY | 41 | #ifndef O_BINARY |
41 | #define O_BINARY 0 | 42 | #define O_BINARY 0 |
@@ -52,143 +53,22 @@ | |||
52 | 53 | ||
53 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ | 54 | #if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ |
54 | (CONFIG_KEYPAD == IRIVER_H300_PAD) | 55 | (CONFIG_KEYPAD == IRIVER_H300_PAD) |
55 | #define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT) | 56 | #define KBD_MORSE_INPUT /* I-Rivers have a Morse input mode */ |
56 | #define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT) | ||
57 | #define KBD_SELECT BUTTON_SELECT | ||
58 | #define KBD_PAGE_FLIP BUTTON_MODE /* unused */ | ||
59 | #define KBD_DONE_PRE BUTTON_ON | ||
60 | #define KBD_DONE (BUTTON_ON | BUTTON_REL) | ||
61 | #define KBD_ABORT BUTTON_OFF | ||
62 | #define KBD_BACKSPACE BUTTON_REC | ||
63 | #define KBD_LEFT BUTTON_LEFT | ||
64 | #define KBD_RIGHT BUTTON_RIGHT | ||
65 | #define KBD_UP BUTTON_UP | ||
66 | #define KBD_DOWN BUTTON_DOWN | ||
67 | #define KBD_MORSE_INPUT (BUTTON_ON | BUTTON_MODE) | ||
68 | #define KBD_RC_CURSOR_RIGHT (BUTTON_RC_ON | BUTTON_RC_FF) | ||
69 | #define KBD_RC_CURSOR_LEFT (BUTTON_RC_ON | BUTTON_RC_REW) | ||
70 | #define KBD_RC_SELECT BUTTON_RC_MENU | ||
71 | #define KBD_RC_PAGE_FLIP BUTTON_RC_MODE | ||
72 | #define KBD_RC_DONE_PRE BUTTON_RC_ON | ||
73 | #define KBD_RC_DONE (BUTTON_RC_ON | BUTTON_REL) | ||
74 | #define KBD_RC_ABORT BUTTON_RC_STOP | ||
75 | #define KBD_RC_BACKSPACE BUTTON_RC_REC | ||
76 | #define KBD_RC_LEFT BUTTON_RC_REW | ||
77 | #define KBD_RC_RIGHT BUTTON_RC_FF | ||
78 | #define KBD_RC_UP BUTTON_RC_SOURCE | ||
79 | #define KBD_RC_DOWN BUTTON_RC_BITRATE | ||
80 | #define KBD_RC_MORSE_INPUT (BUTTON_RC_ON | BUTTON_RC_MODE) | ||
81 | |||
82 | #elif CONFIG_KEYPAD == RECORDER_PAD | ||
83 | #define KBD_CURSOR_RIGHT (BUTTON_ON | BUTTON_RIGHT) | ||
84 | #define KBD_CURSOR_LEFT (BUTTON_ON | BUTTON_LEFT) | ||
85 | #define KBD_SELECT BUTTON_PLAY | ||
86 | #define KBD_PAGE_FLIP BUTTON_F1 | ||
87 | #define KBD_DONE BUTTON_F2 | ||
88 | #define KBD_ABORT BUTTON_OFF | ||
89 | #define KBD_BACKSPACE BUTTON_F3 | ||
90 | #define KBD_LEFT BUTTON_LEFT | ||
91 | #define KBD_RIGHT BUTTON_RIGHT | ||
92 | #define KBD_UP BUTTON_UP | ||
93 | #define KBD_DOWN BUTTON_DOWN | ||
94 | 57 | ||
95 | #elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */ | 58 | #elif CONFIG_KEYPAD == ONDIO_PAD /* restricted Ondio keypad */ |
96 | #define KBD_MODES /* Ondio uses 2 modes, picker and line edit */ | 59 | #define KBD_MODES /* Ondio uses 2 modes, picker and line edit */ |
97 | #define KBD_SELECT (BUTTON_MENU | BUTTON_REL) /* backspace in line edit */ | ||
98 | #define KBD_SELECT_PRE BUTTON_MENU | ||
99 | #define KBD_DONE_PRE BUTTON_MENU | ||
100 | #define KBD_DONE (BUTTON_MENU | BUTTON_REPEAT) | ||
101 | #define KBD_ABORT BUTTON_OFF | ||
102 | #define KBD_LEFT BUTTON_LEFT | ||
103 | #define KBD_RIGHT BUTTON_RIGHT | ||
104 | #define KBD_UP BUTTON_UP | ||
105 | #define KBD_DOWN BUTTON_DOWN | ||
106 | |||
107 | #elif CONFIG_KEYPAD == GMINI100_PAD | ||
108 | #define KBD_CURSOR_RIGHT (BUTTON_MENU | BUTTON_RIGHT) | ||
109 | #define KBD_CURSOR_LEFT (BUTTON_MENU | BUTTON_LEFT) | ||
110 | #define KBD_SELECT (BUTTON_PLAY | BUTTON_REL) | ||
111 | #define KBD_SELECT_PRE BUTTON_PLAY | ||
112 | #define KBD_PAGE_FLIP BUTTON_ON | ||
113 | #define KBD_DONE_PRE BUTTON_PLAY | ||
114 | #define KBD_DONE (BUTTON_PLAY | BUTTON_REPEAT) | ||
115 | #define KBD_ABORT BUTTON_OFF | ||
116 | #define KBD_BACKSPACE (BUTTON_MENU | BUTTON_PLAY) | ||
117 | #define KBD_LEFT BUTTON_LEFT | ||
118 | #define KBD_RIGHT BUTTON_RIGHT | ||
119 | #define KBD_UP BUTTON_UP | ||
120 | #define KBD_DOWN BUTTON_DOWN | ||
121 | 60 | ||
122 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) | 61 | #elif (CONFIG_KEYPAD == IPOD_3G_PAD) || (CONFIG_KEYPAD == IPOD_4G_PAD) |
123 | |||
124 | #define KBD_MODES /* iPod uses 2 modes, picker and line edit */ | 62 | #define KBD_MODES /* iPod uses 2 modes, picker and line edit */ |
125 | #define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */ | ||
126 | #define KBD_SELECT_PRE BUTTON_SELECT | ||
127 | #define KBD_DONE_PRE BUTTON_SELECT | ||
128 | #define KBD_DONE (BUTTON_SELECT | BUTTON_REPEAT) | ||
129 | #define KBD_ABORT BUTTON_MENU | ||
130 | #define KBD_LEFT BUTTON_LEFT | ||
131 | #define KBD_RIGHT BUTTON_RIGHT | ||
132 | #define KBD_UP BUTTON_SCROLL_BACK | ||
133 | #define KBD_DOWN BUTTON_SCROLL_FWD | ||
134 | 63 | ||
135 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | 64 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD |
136 | |||
137 | /* TODO: Check keyboard mappings */ | ||
138 | |||
139 | #define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */ | 65 | #define KBD_MODES /* iFP7xx uses 2 modes, picker and line edit */ |
140 | #define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */ | ||
141 | #define KBD_SELECT_PRE BUTTON_SELECT | ||
142 | #define KBD_DONE BUTTON_MODE | ||
143 | #define KBD_ABORT BUTTON_PLAY | ||
144 | #define KBD_LEFT BUTTON_LEFT | ||
145 | #define KBD_RIGHT BUTTON_RIGHT | ||
146 | #define KBD_UP BUTTON_UP | ||
147 | #define KBD_DOWN BUTTON_DOWN | ||
148 | 66 | ||
149 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD | 67 | #elif CONFIG_KEYPAD == IAUDIO_X5_PAD |
150 | |||
151 | /* TODO: Check keyboard mappings */ | ||
152 | |||
153 | #define KBD_MODES /* iAudio X5 uses 2 modes, picker and line edit */ | 68 | #define KBD_MODES /* iAudio X5 uses 2 modes, picker and line edit */ |
154 | #define KBD_SELECT (BUTTON_SELECT | BUTTON_REL) /* backspace in line edit */ | ||
155 | #define KBD_SELECT_PRE BUTTON_SELECT | ||
156 | #define KBD_DONE BUTTON_PLAY | ||
157 | #define KBD_ABORT BUTTON_REC | ||
158 | #define KBD_LEFT BUTTON_LEFT | ||
159 | #define KBD_RIGHT BUTTON_RIGHT | ||
160 | #define KBD_UP BUTTON_UP | ||
161 | #define KBD_DOWN BUTTON_DOWN | ||
162 | |||
163 | #elif CONFIG_KEYPAD == GIGABEAT_PAD | ||
164 | |||
165 | #define KBD_CURSOR_RIGHT (BUTTON_POWER | BUTTON_RIGHT) | ||
166 | #define KBD_CURSOR_LEFT (BUTTON_POWER | BUTTON_LEFT) | ||
167 | #define KBD_SELECT BUTTON_SELECT | ||
168 | #define KBD_PAGE_FLIP (BUTTON_POWER | BUTTON_MENU) | ||
169 | #define KBD_DONE_PRE BUTTON_POWER | ||
170 | #define KBD_DONE (BUTTON_POWER | BUTTON_REL) | ||
171 | #define KBD_ABORT BUTTON_A | ||
172 | #define KBD_BACKSPACE BUTTON_MENU | ||
173 | #define KBD_LEFT BUTTON_LEFT | ||
174 | #define KBD_RIGHT BUTTON_RIGHT | ||
175 | #define KBD_UP BUTTON_UP | ||
176 | #define KBD_DOWN BUTTON_DOWN | ||
177 | 69 | ||
178 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD | 70 | #elif CONFIG_KEYPAD == IRIVER_H10_PAD |
179 | |||
180 | /* TODO: Check keyboard mappings */ | ||
181 | |||
182 | #define KBD_MODES /* iriver H10 uses 2 modes, picker and line edit */ | 71 | #define KBD_MODES /* iriver H10 uses 2 modes, picker and line edit */ |
183 | #define KBD_SELECT (BUTTON_REW | BUTTON_REL) /* backspace in line edit */ | ||
184 | #define KBD_SELECT_PRE BUTTON_REW | ||
185 | #define KBD_DONE BUTTON_PLAY | ||
186 | #define KBD_ABORT BUTTON_FF | ||
187 | #define KBD_LEFT BUTTON_LEFT | ||
188 | #define KBD_RIGHT BUTTON_RIGHT | ||
189 | #define KBD_UP BUTTON_SCROLL_UP | ||
190 | #define KBD_DOWN BUTTON_SCROLL_DOWN | ||
191 | |||
192 | #endif | 72 | #endif |
193 | 73 | ||
194 | struct keyboard_parameters { | 74 | struct keyboard_parameters { |
@@ -694,30 +574,21 @@ int kbd_input(char* text, int buflen) | |||
694 | FOR_NB_SCREENS(l) | 574 | FOR_NB_SCREENS(l) |
695 | screens[l].update(); | 575 | screens[l].update(); |
696 | 576 | ||
697 | button = button_get_w_tmo(HZ/2); | 577 | button = get_action(CONTEXT_KEYBOARD,HZ/2); |
698 | #ifdef KBD_MORSE_INPUT | 578 | #ifdef KBD_MORSE_INPUT |
699 | if (morse_mode) | 579 | if (morse_mode) |
700 | { | 580 | { |
701 | /* Remap some buttons for morse mode. */ | 581 | /* Remap some buttons for morse mode. */ |
702 | if (button == KBD_LEFT || button == (KBD_LEFT | BUTTON_REPEAT)) | 582 | if (button == ACTION_KBD_LEFT) |
703 | button = KBD_CURSOR_LEFT; | 583 | button = ACTION_KBD_CURSOR_LEFT; |
704 | if (button == KBD_RIGHT || button == (KBD_RIGHT | BUTTON_REPEAT)) | 584 | if (button == ACTION_KBD_RIGHT) |
705 | button = KBD_CURSOR_RIGHT; | 585 | button = ACTION_KBD_CURSOR_RIGHT; |
706 | #ifdef KBD_RC_LEFT | ||
707 | if (button == KBD_RC_LEFT || button == (KBD_RC_LEFT | BUTTON_REPEAT)) | ||
708 | button = KBD_RC_CURSOR_LEFT; | ||
709 | if (button == KBD_RC_RIGHT || button == (KBD_RC_RIGHT | BUTTON_REPEAT)) | ||
710 | button = KBD_RC_CURSOR_RIGHT; | ||
711 | } | 586 | } |
712 | #endif | 587 | #endif |
713 | #endif | ||
714 | 588 | ||
715 | switch ( button ) { | 589 | switch ( button ) { |
716 | 590 | ||
717 | #ifdef KBD_RC_ABORT | 591 | case ACTION_KBD_ABORT: |
718 | case KBD_RC_ABORT: | ||
719 | #endif | ||
720 | case KBD_ABORT: | ||
721 | FOR_NB_SCREENS(l) | 592 | FOR_NB_SCREENS(l) |
722 | screens[l].setfont(FONT_UI); | 593 | screens[l].setfont(FONT_UI); |
723 | 594 | ||
@@ -727,11 +598,7 @@ int kbd_input(char* text, int buflen) | |||
727 | return -1; | 598 | return -1; |
728 | break; | 599 | break; |
729 | 600 | ||
730 | #if defined(KBD_PAGE_FLIP) | 601 | case ACTION_KBD_PAGE_FLIP: |
731 | case KBD_PAGE_FLIP: | ||
732 | #ifdef KBD_RC_PAGE_FLIP | ||
733 | case KBD_RC_PAGE_FLIP: | ||
734 | #endif | ||
735 | #ifdef KBD_MORSE_INPUT | 602 | #ifdef KBD_MORSE_INPUT |
736 | if (morse_mode) | 603 | if (morse_mode) |
737 | break; | 604 | break; |
@@ -745,13 +612,10 @@ int kbd_input(char* text, int buflen) | |||
745 | kbd_spellchar(param[l].kbd_buf[k]); | 612 | kbd_spellchar(param[l].kbd_buf[k]); |
746 | } | 613 | } |
747 | break; | 614 | break; |
748 | #endif | ||
749 | 615 | ||
750 | #ifdef KBD_MORSE_INPUT | 616 | #ifdef KBD_MORSE_INPUT |
751 | case KBD_MORSE_INPUT: | 617 | case ACTION_KBD_MORSE_INPUT: |
752 | #ifdef KBD_RC_MORSE_INPUT | 618 | |
753 | case KBD_RC_MORSE_INPUT: | ||
754 | #endif | ||
755 | morse_mode = !morse_mode; | 619 | morse_mode = !morse_mode; |
756 | FOR_NB_SCREENS(l) | 620 | FOR_NB_SCREENS(l) |
757 | { | 621 | { |
@@ -765,12 +629,8 @@ int kbd_input(char* text, int buflen) | |||
765 | /* FIXME: We should talk something like Morse mode.. */ | 629 | /* FIXME: We should talk something like Morse mode.. */ |
766 | break; | 630 | break; |
767 | #endif | 631 | #endif |
768 | #ifdef KBD_RC_RIGHT | 632 | |
769 | case KBD_RC_RIGHT: | 633 | case ACTION_KBD_RIGHT: |
770 | case KBD_RC_RIGHT | BUTTON_REPEAT: | ||
771 | #endif | ||
772 | case KBD_RIGHT: | ||
773 | case KBD_RIGHT | BUTTON_REPEAT: | ||
774 | #ifdef KBD_MORSE_INPUT | 634 | #ifdef KBD_MORSE_INPUT |
775 | if (morse_mode) | 635 | if (morse_mode) |
776 | break; | 636 | break; |
@@ -806,12 +666,8 @@ int kbd_input(char* text, int buflen) | |||
806 | } | 666 | } |
807 | } | 667 | } |
808 | break; | 668 | break; |
809 | #ifdef KBD_RC_LEFT | 669 | |
810 | case KBD_RC_LEFT: | 670 | case ACTION_KBD_LEFT: |
811 | case KBD_RC_LEFT | BUTTON_REPEAT: | ||
812 | #endif | ||
813 | case KBD_LEFT: | ||
814 | case KBD_LEFT | BUTTON_REPEAT: | ||
815 | #ifdef KBD_MORSE_INPUT | 671 | #ifdef KBD_MORSE_INPUT |
816 | if (morse_mode) | 672 | if (morse_mode) |
817 | break; | 673 | break; |
@@ -852,12 +708,7 @@ int kbd_input(char* text, int buflen) | |||
852 | } | 708 | } |
853 | break; | 709 | break; |
854 | 710 | ||
855 | #ifdef KBD_RC_DOWN | 711 | case ACTION_KBD_DOWN: |
856 | case KBD_RC_DOWN: | ||
857 | case KBD_RC_DOWN | BUTTON_REPEAT: | ||
858 | #endif | ||
859 | case KBD_DOWN: | ||
860 | case KBD_DOWN | BUTTON_REPEAT: | ||
861 | #ifdef KBD_MORSE_INPUT | 712 | #ifdef KBD_MORSE_INPUT |
862 | if (morse_mode) | 713 | if (morse_mode) |
863 | break; | 714 | break; |
@@ -895,12 +746,7 @@ int kbd_input(char* text, int buflen) | |||
895 | } | 746 | } |
896 | break; | 747 | break; |
897 | 748 | ||
898 | #ifdef KBD_RC_UP | 749 | case ACTION_KBD_UP: |
899 | case KBD_RC_UP: | ||
900 | case KBD_RC_UP | BUTTON_REPEAT: | ||
901 | #endif | ||
902 | case KBD_UP: | ||
903 | case KBD_UP | BUTTON_REPEAT: | ||
904 | #ifdef KBD_MORSE_INPUT | 750 | #ifdef KBD_MORSE_INPUT |
905 | if (morse_mode) | 751 | if (morse_mode) |
906 | break; | 752 | break; |
@@ -938,27 +784,13 @@ int kbd_input(char* text, int buflen) | |||
938 | } | 784 | } |
939 | break; | 785 | break; |
940 | 786 | ||
941 | #ifdef KBD_RC_DONE | 787 | case ACTION_KBD_DONE: |
942 | case KBD_RC_DONE: | ||
943 | #endif | ||
944 | case KBD_DONE: | ||
945 | /* accepts what was entered and continues */ | 788 | /* accepts what was entered and continues */ |
946 | #ifdef KBD_DONE_PRE | ||
947 | if ((lastbutton != KBD_DONE_PRE) | ||
948 | #ifdef KBD_RC_DONE_PRE | ||
949 | && (lastbutton != KBD_RC_DONE_PRE) | ||
950 | #endif | ||
951 | ) | ||
952 | break; | ||
953 | #endif | ||
954 | done = true; | 789 | done = true; |
955 | break; | 790 | break; |
956 | 791 | ||
957 | #ifdef KBD_MORSE_INPUT | 792 | #ifdef KBD_MORSE_INPUT |
958 | #ifdef KBD_RC_SELECT | 793 | case ACTION_KBD_MORSE_SELECT: |
959 | case KBD_RC_SELECT | BUTTON_REL: | ||
960 | #endif | ||
961 | case KBD_SELECT | BUTTON_REL: | ||
962 | if (morse_mode && morse_reading) | 794 | if (morse_mode && morse_reading) |
963 | { | 795 | { |
964 | morse_code <<= 1; | 796 | morse_code <<= 1; |
@@ -969,15 +801,11 @@ int kbd_input(char* text, int buflen) | |||
969 | break; | 801 | break; |
970 | #endif | 802 | #endif |
971 | 803 | ||
972 | #ifdef KBD_RC_SELECT | 804 | case ACTION_KBD_SELECT: |
973 | case KBD_RC_SELECT: | 805 | case ACTION_KBD_SELECT_REM: |
974 | 806 | if (button == ACTION_KBD_SELECT_REM) | |
975 | if (button == KBD_RC_SELECT) | ||
976 | char_screen = 1; | 807 | char_screen = 1; |
977 | #endif | 808 | else |
978 | case KBD_SELECT: | ||
979 | |||
980 | if (button == KBD_SELECT) | ||
981 | char_screen = 0; | 809 | char_screen = 0; |
982 | #ifdef KBD_MORSE_INPUT | 810 | #ifdef KBD_MORSE_INPUT |
983 | if (morse_mode) | 811 | if (morse_mode) |
@@ -993,14 +821,6 @@ int kbd_input(char* text, int buflen) | |||
993 | #endif | 821 | #endif |
994 | 822 | ||
995 | /* inserts the selected char */ | 823 | /* inserts the selected char */ |
996 | #ifdef KBD_SELECT_PRE | ||
997 | if ((lastbutton != KBD_SELECT_PRE) | ||
998 | #ifdef KBD_RC_SELECT_PRE | ||
999 | && (lastbutton != KBD_RC_SELECT_PRE) | ||
1000 | #endif | ||
1001 | ) | ||
1002 | break; | ||
1003 | #endif | ||
1004 | #ifdef KBD_MODES | 824 | #ifdef KBD_MODES |
1005 | if (line_edit) { /* select doubles as backspace in line_edit */ | 825 | if (line_edit) { /* select doubles as backspace in line_edit */ |
1006 | if (hangul) { | 826 | if (hangul) { |
@@ -1088,12 +908,7 @@ int kbd_input(char* text, int buflen) | |||
1088 | break; | 908 | break; |
1089 | 909 | ||
1090 | #ifndef KBD_MODES | 910 | #ifndef KBD_MODES |
1091 | #ifdef KBD_RC_BACKSPACE | 911 | case ACTION_KBD_BACKSPACE: |
1092 | case KBD_RC_BACKSPACE: | ||
1093 | case KBD_RC_BACKSPACE | BUTTON_REPEAT: | ||
1094 | #endif | ||
1095 | case KBD_BACKSPACE: | ||
1096 | case KBD_BACKSPACE | BUTTON_REPEAT: | ||
1097 | if (hangul) | 912 | if (hangul) |
1098 | { | 913 | { |
1099 | if (htail) | 914 | if (htail) |
@@ -1116,12 +931,8 @@ int kbd_input(char* text, int buflen) | |||
1116 | talk_spell(text, false); /* speak revised text */ | 931 | talk_spell(text, false); /* speak revised text */ |
1117 | break; | 932 | break; |
1118 | 933 | ||
1119 | #ifdef KBD_RC_CURSOR_RIGHT | 934 | case ACTION_KBD_CURSOR_RIGHT: |
1120 | case KBD_RC_CURSOR_RIGHT: | 935 | |
1121 | case KBD_RC_CURSOR_RIGHT | BUTTON_REPEAT: | ||
1122 | #endif | ||
1123 | case KBD_CURSOR_RIGHT: | ||
1124 | case KBD_CURSOR_RIGHT | BUTTON_REPEAT: | ||
1125 | if (hangul) | 936 | if (hangul) |
1126 | hangul = false; | 937 | hangul = false; |
1127 | 938 | ||
@@ -1133,12 +944,8 @@ int kbd_input(char* text, int buflen) | |||
1133 | } | 944 | } |
1134 | break; | 945 | break; |
1135 | 946 | ||
1136 | #ifdef KBD_RC_CURSOR_LEFT | 947 | case ACTION_KBD_CURSOR_LEFT: |
1137 | case KBD_RC_CURSOR_LEFT: | 948 | |
1138 | case KBD_RC_CURSOR_LEFT | BUTTON_REPEAT: | ||
1139 | #endif | ||
1140 | case KBD_CURSOR_LEFT: | ||
1141 | case KBD_CURSOR_LEFT | BUTTON_REPEAT: | ||
1142 | if (hangul) | 949 | if (hangul) |
1143 | hangul = false; | 950 | hangul = false; |
1144 | if (editpos) | 951 | if (editpos) |