diff options
Diffstat (limited to 'apps/menu.c')
-rw-r--r-- | apps/menu.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/apps/menu.c b/apps/menu.c index f67c0633c6..a1c70824ce 100644 --- a/apps/menu.c +++ b/apps/menu.c | |||
@@ -124,6 +124,7 @@ int menu_show(int m) | |||
124 | #endif | 124 | #endif |
125 | bool exit = false; | 125 | bool exit = false; |
126 | int key; | 126 | int key; |
127 | unsigned lastbutton = 0; | ||
127 | 128 | ||
128 | gui_synclist_draw(&(menus[m].synclist)); | 129 | gui_synclist_draw(&(menus[m].synclist)); |
129 | gui_syncstatusbar_draw(&statusbars, true); | 130 | gui_syncstatusbar_draw(&statusbars, true); |
@@ -143,7 +144,9 @@ int menu_show(int m) | |||
143 | if(gui_synclist_do_button(&(menus[m].synclist), key)) | 144 | if(gui_synclist_do_button(&(menus[m].synclist), key)) |
144 | menu_talk_selected(m); | 145 | menu_talk_selected(m); |
145 | switch( key ) { | 146 | switch( key ) { |
146 | case MENU_ENTER: | 147 | case MENU_ENTER | BUTTON_REL: |
148 | if (lastbutton != MENU_ENTER) | ||
149 | break; | ||
147 | #ifdef MENU_ENTER2 | 150 | #ifdef MENU_ENTER2 |
148 | case MENU_ENTER2: | 151 | case MENU_ENTER2: |
149 | #endif | 152 | #endif |
@@ -156,12 +159,18 @@ int menu_show(int m) | |||
156 | return gui_synclist_get_sel_pos(&(menus[m].synclist)); | 159 | return gui_synclist_get_sel_pos(&(menus[m].synclist)); |
157 | 160 | ||
158 | 161 | ||
159 | case MENU_EXIT: | 162 | case MENU_EXIT | BUTTON_REL: |
163 | if (lastbutton != MENU_EXIT) | ||
164 | break; | ||
160 | #ifdef MENU_EXIT2 | 165 | #ifdef MENU_EXIT2 |
161 | case MENU_EXIT2: | 166 | case MENU_EXIT2: |
162 | #endif | 167 | #endif |
163 | #ifdef MENU_EXIT_MENU | 168 | #ifdef MENU_EXIT_MENU |
164 | case 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; | ||
165 | #endif | 174 | #endif |
166 | #ifdef MENU_RC_EXIT | 175 | #ifdef MENU_RC_EXIT |
167 | case MENU_RC_EXIT: | 176 | case MENU_RC_EXIT: |
@@ -178,6 +187,8 @@ int menu_show(int m) | |||
178 | break; | 187 | break; |
179 | } | 188 | } |
180 | gui_syncstatusbar_draw(&statusbars, false); | 189 | gui_syncstatusbar_draw(&statusbars, false); |
190 | if ( key ) | ||
191 | lastbutton = key; | ||
181 | } | 192 | } |
182 | return MENU_SELECTED_EXIT; | 193 | return MENU_SELECTED_EXIT; |
183 | } | 194 | } |