static void cmd_ctrl_y(key_info_t key_info, keys_info_t *keys_info) { if(fpos_has_hidden_top(view)) { int new_pos = get_corrected_list_pos_up(view, view->column_count); scroll_up(view, view->column_count); goto_pos_force_update(new_pos); } }
static void cmd_ctrl_u(key_info_t key_info, keys_info_t *keys_info) { if(!at_first_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_up(view, offset); new_pos = MIN(new_pos, view->list_pos - (int)offset); new_pos = MAX(new_pos, 0); 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 backwards by pos_delta positions. */ static void correct_list_pos_up(FileView *view, size_t pos_delta) { view->list_pos = get_corrected_list_pos_up(view, pos_delta); }