summaryrefslogtreecommitdiff
path: root/apps/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/apps/menu.c b/apps/menu.c
index f3355278f9..e359f75799 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -55,8 +55,6 @@ static void menu_draw(int m)
55 i++) { 55 i++) {
56 lcd_puts(1, i-menus[m].top, menus[m].items[i].desc); 56 lcd_puts(1, i-menus[m].top, menus[m].items[i].desc);
57 } 57 }
58
59 lcd_puts(0, menus[m].cursor - menus[m].top, "-");
60 lcd_update(); 58 lcd_update();
61} 59}
62 60
@@ -72,7 +70,7 @@ static void put_cursor(int m, int target)
72 menus[m].top--; 70 menus[m].top--;
73 menu_draw(m); 71 menu_draw(m);
74 } 72 }
75 else if ( target > MENU_LINES-1 ) { 73 else if ( target-menus[m].top > MENU_LINES-1 ) {
76 menus[m].top++; 74 menus[m].top++;
77 menu_draw(m); 75 menu_draw(m);
78 } 76 }
@@ -110,6 +108,7 @@ void menu_exit(int m)
110void menu_run(int m) 108void menu_run(int m)
111{ 109{
112 menu_draw(m); 110 menu_draw(m);
111 lcd_puts(0, menus[m].cursor - menus[m].top, "-");
113 112
114 while(1) { 113 while(1) {
115 switch( button_get(true) ) { 114 switch( button_get(true) ) {
@@ -118,10 +117,7 @@ void menu_run(int m)
118#else 117#else
119 case BUTTON_LEFT: 118 case BUTTON_LEFT:
120#endif 119#endif
121 if (menus[m].cursor == 0) { 120 if (menus[m].cursor) {
122 /* wrap around to menu bottom */
123 put_cursor(m, menus[m].itemcount-1);
124 } else {
125 /* move up */ 121 /* move up */
126 put_cursor(m, menus[m].cursor-1); 122 put_cursor(m, menus[m].cursor-1);
127 } 123 }
@@ -132,10 +128,7 @@ void menu_run(int m)
132#else 128#else
133 case BUTTON_RIGHT: 129 case BUTTON_RIGHT:
134#endif 130#endif
135 if (menus[m].cursor == menus[m].itemcount-1) { 131 if (menus[m].cursor < menus[m].itemcount-1) {
136 /* wrap around to menu top */
137 put_cursor(m, 0);
138 } else {
139 /* move down */ 132 /* move down */
140 put_cursor(m, menus[m].cursor+1); 133 put_cursor(m, menus[m].cursor+1);
141 } 134 }
@@ -152,6 +145,7 @@ void menu_run(int m)
152 145
153 /* Return to previous display state */ 146 /* Return to previous display state */
154 menu_draw(m); 147 menu_draw(m);
148 lcd_puts(0, menus[m].cursor - menus[m].top, "-");
155 break; 149 break;
156 150
157#ifdef HAVE_RECORDER_KEYPAD 151#ifdef HAVE_RECORDER_KEYPAD