diff options
-rw-r--r-- | apps/menu.c | 16 |
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) | |||
110 | void menu_run(int m) | 108 | void 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 |