Cursor movement appears to be working properly again.
This commit is contained in:
parent
27959dadf8
commit
870818fec8
|
@ -596,61 +596,34 @@ impl<T: LineFormatter> Editor<T> {
|
|||
|
||||
|
||||
pub fn page_up(&mut self) {
|
||||
// TODO: update to new formatting code
|
||||
let move_amount = self.view_dim.0 - max((self.view_dim.0 / 8), self.formatter.single_line_height());
|
||||
self.view_pos.0 = self.formatter.index_offset_vertical_v2d(&self.buffer, self.view_pos.0, -1 * move_amount as isize, (Round, Round));
|
||||
|
||||
//let move_amount = self.view_dim.0 - max((self.view_dim.0 / 8), self.buffer.formatter.single_line_height());
|
||||
//
|
||||
//if self.view_pos.0 > 0 {
|
||||
// if self.view_pos.0 >= move_amount {
|
||||
// self.view_pos.0 -= move_amount;
|
||||
// }
|
||||
// else {
|
||||
// self.view_pos.0 = 0;
|
||||
// }
|
||||
//}
|
||||
//
|
||||
//self.cursor_up(move_amount);
|
||||
//
|
||||
//// Adjust view
|
||||
//self.move_view_to_cursor();
|
||||
self.cursor_up(move_amount);
|
||||
|
||||
// Adjust view
|
||||
self.move_view_to_cursor();
|
||||
}
|
||||
|
||||
|
||||
pub fn page_down(&mut self) {
|
||||
// TODO: update to new formatting code
|
||||
let move_amount = self.view_dim.0 - max((self.view_dim.0 / 8), self.formatter.single_line_height());
|
||||
self.view_pos.0 = self.formatter.index_offset_vertical_v2d(&self.buffer, self.view_pos.0, move_amount as isize, (Round, Round));
|
||||
|
||||
//let nlc = self.buffer.line_count() - 1;
|
||||
//let move_amount = self.view_dim.0 - max((self.view_dim.0 / 8), self.buffer.formatter.single_line_height());
|
||||
//
|
||||
//if self.view_pos.0 < nlc {
|
||||
// let max_move = nlc - self.view_pos.0;
|
||||
//
|
||||
// if max_move >= move_amount {
|
||||
// self.view_pos.0 += move_amount;
|
||||
// }
|
||||
// else {
|
||||
// self.view_pos.0 += max_move;
|
||||
// }
|
||||
//
|
||||
//}
|
||||
//
|
||||
//self.cursor_down(move_amount);
|
||||
//
|
||||
//// Adjust view
|
||||
//self.move_view_to_cursor();
|
||||
self.cursor_down(move_amount);
|
||||
|
||||
// Adjust view
|
||||
self.move_view_to_cursor();
|
||||
}
|
||||
|
||||
|
||||
pub fn jump_to_line(&mut self, n: usize) {
|
||||
// TODO: update to new formatting code
|
||||
let pos = self.buffer.line_col_to_index((n, 0));
|
||||
self.cursors.truncate(1);
|
||||
self.cursors[0].range.0 = self.formatter.index_set_horizontal_v2d(&self.buffer, pos, self.cursors[0].vis_start, Round);
|
||||
self.cursors[0].range.1 = self.cursors[0].range.0;
|
||||
|
||||
//let pos = self.buffer.line_col_to_index((n, 0));
|
||||
//let (v, _) = self.buffer.index_to_v2d(pos);
|
||||
//self.cursors.truncate(1);
|
||||
//self.cursors[0].range.0 = self.buffer.v2d_to_index((v, self.cursors[0].vis_start), (Floor, Floor));
|
||||
//self.cursors[0].range.1 = self.cursors[0].range.0;
|
||||
//
|
||||
//// Adjust view
|
||||
//self.move_view_to_cursor();
|
||||
// Adjust view
|
||||
self.move_view_to_cursor();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,9 +83,7 @@ pub trait LineFormatter {
|
|||
// Next, convert the resulting coordinates back into buffer-wide
|
||||
// coordinates.
|
||||
col_i = self.v2d_to_index(line, (y, x), rounding);
|
||||
//if col_i >= line.grapheme_count() && line.grapheme_count() > 0 {
|
||||
// col_i = line.grapheme_count() - 1;
|
||||
//}
|
||||
|
||||
return buf.line_col_to_index((line_i, col_i));
|
||||
}
|
||||
|
||||
|
@ -95,7 +93,10 @@ pub trait LineFormatter {
|
|||
let line = buf.get_line(line_i);
|
||||
|
||||
let (v, _) = self.index_to_v2d(line, col_i);
|
||||
let new_col_i = self.v2d_to_index(line, (v, horizontal), (RoundingBehavior::Floor, rounding));
|
||||
let mut new_col_i = self.v2d_to_index(line, (v, horizontal), (RoundingBehavior::Floor, rounding));
|
||||
if new_col_i >= line.grapheme_count() && line.grapheme_count() > 0 {
|
||||
new_col_i = line.grapheme_count() - 1;
|
||||
}
|
||||
|
||||
return (index + new_col_i) - col_i;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user