diff options
Diffstat (limited to 'apps/menu.c')
-rw-r--r-- | apps/menu.c | 42 |
1 files changed, 7 insertions, 35 deletions
diff --git a/apps/menu.c b/apps/menu.c index a1c70824ce..f861e0bddf 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -40,6 +40,7 @@ | |||
40 | #include "talk.h" | 40 | #include "talk.h" |
41 | #include "lang.h" | 41 | #include "lang.h" |
42 | #include "misc.h" | 42 | #include "misc.h" |
43 | #include "action.h" | ||
43 | 44 | ||
44 | #ifdef HAVE_LCD_BITMAP | 45 | #ifdef HAVE_LCD_BITMAP |
45 | #include "icons.h" | 46 | #include "icons.h" |
@@ -124,13 +125,12 @@ int menu_show(int m) | |||
124 | #endif | 125 | #endif |
125 | bool exit = false; | 126 | bool exit = false; |
126 | int key; | 127 | int key; |
127 | unsigned lastbutton = 0; | ||
128 | 128 | ||
129 | gui_synclist_draw(&(menus[m].synclist)); | 129 | gui_synclist_draw(&(menus[m].synclist)); |
130 | gui_syncstatusbar_draw(&statusbars, true); | 130 | gui_syncstatusbar_draw(&statusbars, true); |
131 | menu_talk_selected(m); | 131 | menu_talk_selected(m); |
132 | while (!exit) { | 132 | while (!exit) { |
133 | key = button_get_w_tmo(HZ/2); | 133 | key = get_action(CONTEXT_MAINMENU,HZ/2); |
134 | /* | 134 | /* |
135 | * "short-circuit" the default keypresses by running the | 135 | * "short-circuit" the default keypresses by running the |
136 | * callback function | 136 | * callback function |
@@ -144,40 +144,13 @@ int menu_show(int m) | |||
144 | if(gui_synclist_do_button(&(menus[m].synclist), key)) | 144 | if(gui_synclist_do_button(&(menus[m].synclist), key)) |
145 | menu_talk_selected(m); | 145 | menu_talk_selected(m); |
146 | switch( key ) { | 146 | switch( key ) { |
147 | case MENU_ENTER | BUTTON_REL: | 147 | case ACTION_STD_OK: |
148 | if (lastbutton != MENU_ENTER) | 148 | action_signalscreenchange(); |
149 | break; | ||
150 | #ifdef MENU_ENTER2 | ||
151 | case MENU_ENTER2: | ||
152 | #endif | ||
153 | #ifdef MENU_RC_ENTER | ||
154 | case MENU_RC_ENTER: | ||
155 | #endif | ||
156 | #ifdef MENU_RC_ENTER2 | ||
157 | case MENU_RC_ENTER2: | ||
158 | #endif | ||
159 | return gui_synclist_get_sel_pos(&(menus[m].synclist)); | 149 | return gui_synclist_get_sel_pos(&(menus[m].synclist)); |
160 | 150 | ||
161 | 151 | ||
162 | case MENU_EXIT | BUTTON_REL: | 152 | case ACTION_STD_CANCEL: |
163 | if (lastbutton != MENU_EXIT) | 153 | case ACTION_STD_MENU: |
164 | break; | ||
165 | #ifdef MENU_EXIT2 | ||
166 | case MENU_EXIT2: | ||
167 | #endif | ||
168 | #ifdef MENU_EXIT_MENU | ||
169 | case MENU_EXIT_MENU | BUTTON_REL: | ||
170 | /* This is important for the Ondio's */ | ||
171 | if ((key == (MENU_EXIT_MENU | BUTTON_REL)) && | ||
172 | (lastbutton != MENU_EXIT_MENU)) | ||
173 | break; | ||
174 | #endif | ||
175 | #ifdef MENU_RC_EXIT | ||
176 | case MENU_RC_EXIT: | ||
177 | #endif | ||
178 | #ifdef MENU_RC_EXIT_MENU | ||
179 | case MENU_RC_EXIT_MENU: | ||
180 | #endif | ||
181 | exit = true; | 154 | exit = true; |
182 | break; | 155 | break; |
183 | 156 | ||
@@ -187,9 +160,8 @@ int menu_show(int m) | |||
187 | break; | 160 | break; |
188 | } | 161 | } |
189 | gui_syncstatusbar_draw(&statusbars, false); | 162 | gui_syncstatusbar_draw(&statusbars, false); |
190 | if ( key ) | ||
191 | lastbutton = key; | ||
192 | } | 163 | } |
164 | action_signalscreenchange(); | ||
193 | return MENU_SELECTED_EXIT; | 165 | return MENU_SELECTED_EXIT; |
194 | } | 166 | } |
195 | 167 | ||