+ /* char buf[20]; */
+ /* sprintf(buf, "%d", items_visible(menu)); */
+ /* mvprintw(20, 20, buf); */
+
+ /* calculate scroll */
+ int visible;
+
+ visible = items_visible(menu);
+
+ if (menu->selected_item > menu->scroll_offset+visible) {
+ // may be dangerous, assumes render after every action
+ menu->scroll_offset += 1;
+ } else if (menu->selected_item < menu->scroll_offset) {
+ menu->scroll_offset = menu->scroll_offset-1;
+ if (menu->scroll_offset < 0) menu->scroll_offset = 0;
+ }
+