summaryrefslogtreecommitdiff
path: root/apps/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c42
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