static void cmd_ctrl_d(key_info_t key_info, keys_info_t *keys_info) { const int s = get_effective_menu_scroll_offset(menu); clean_menu_position(menu); menu->top += DIV_ROUND_UP(menu->win_rows - 3, 2); menu->pos += DIV_ROUND_UP(menu->win_rows - 3, 2); if(cfg.scroll_off > 0 && menu->pos - menu->top < s) menu->pos += s - (menu->pos - menu->top); update_menu(); }
static void cmd_ctrl_d(key_info_t key_info, keys_info_t *keys_info) { const int s = get_effective_menu_scroll_offset(menu); menus_erase_current(menu->state); menu->top += DIV_ROUND_UP(getmaxy(menu_win) - 3, 2); menu->pos += DIV_ROUND_UP(getmaxy(menu_win) - 3, 2); if(cfg.scroll_off > 0 && menu->pos - menu->top < s) { menu->pos += s - (menu->pos - menu->top); } menu_partial_redraw(); }
static void cmd_ctrl_f(key_info_t key_info, keys_info_t *keys_info) { if(can_scroll_menu_down(menu)) { const int s = get_effective_menu_scroll_offset(menu); const int off = (menu->win_rows - 2) - SCROLL_GAP; menu->pos = menu->top + off; change_menu_top(menu, off); if(cfg.scroll_off > 0 && menu->pos - menu->top < s) menu->pos += s - (menu->pos - menu->top); update_menu(); } }
static void cmd_ctrl_b(key_info_t key_info, keys_info_t *keys_info) { if(can_scroll_menu_up(menu)) { const int s = get_effective_menu_scroll_offset(menu); const int off = (menu->win_rows - 2) - SCROLL_GAP; menu->pos = get_last_visible_line(menu) - off; change_menu_top(menu, -off); if(cfg.scroll_off > 0 && menu->top + (menu->win_rows - 3) - menu->pos < s) menu->pos -= s - (menu->top + (menu->win_rows - 3) - menu->pos); update_menu(); } }
static void cmd_ctrl_f(key_info_t key_info, keys_info_t *keys_info) { if(can_scroll_menu_down(menu)) { const int s = get_effective_menu_scroll_offset(menu); const int off = (getmaxy(menu_win) - 2) - SCROLL_GAP; menu->pos = menu->top + off; change_menu_top(menu, off); if(cfg.scroll_off > 0 && menu->pos - menu->top < s) { menu->pos += s - (menu->pos - menu->top); } menu_partial_redraw(); } }
static void cmd_ctrl_b(key_info_t key_info, keys_info_t *keys_info) { if(can_scroll_menu_up(menu)) { const int s = get_effective_menu_scroll_offset(menu); const int off = (getmaxy(menu_win) - 2) - SCROLL_GAP; menu->pos = menu_last_line(menu) - off; change_menu_top(menu, -off); if(cfg.scroll_off > 0 && menu->top + (getmaxy(menu_win) - 3) - menu->pos < s) { menu->pos -= s - (menu->top + (getmaxy(menu_win) - 3) - menu->pos); } menu_partial_redraw(); } }