static void cmd_ctrl_e(key_info_t key_info, keys_info_t *keys_info) { if(fpos_has_hidden_top(view)) { int new_pos = get_corrected_list_pos_down(view, view->column_count); scroll_down(view, view->column_count); goto_pos_force_update(new_pos); } }
static void cmd_ctrl_d(key_info_t key_info, keys_info_t *keys_info) { if(!at_last_line(view)) { int new_pos; size_t offset = view->window_cells/2; offset = ROUND_DOWN(offset, view->column_count); new_pos = get_corrected_list_pos_down(view, offset); new_pos = MAX(new_pos, view->list_pos + offset); new_pos = MIN(new_pos, view->list_rows); new_pos = ROUND_DOWN(new_pos, view->column_count); view->top_line += new_pos - view->list_pos; goto_pos(new_pos); } }
/* Tries to move cursor forward by pos_delta positions. */ static void correct_list_pos_down(FileView *view, size_t pos_delta) { view->list_pos = get_corrected_list_pos_down(view, pos_delta); }