Fix open on multiline selection (#2161)
Select multiple line and open should be based on the whole selection and not just the line of the cursor, which causes weird behavior like opening in the middle of the selection which user might not expect.
This commit is contained in:
parent
5d5b6bab9b
commit
2a853cd41d
1 changed files with 4 additions and 2 deletions
|
@ -2292,8 +2292,10 @@ fn open(cx: &mut Context, open: Open) {
|
||||||
let mut offs = 0;
|
let mut offs = 0;
|
||||||
|
|
||||||
let mut transaction = Transaction::change_by_selection(contents, selection, |range| {
|
let mut transaction = Transaction::change_by_selection(contents, selection, |range| {
|
||||||
let cursor_line = range.cursor_line(text);
|
let cursor_line = text.char_to_line(match open {
|
||||||
|
Open::Below => graphemes::prev_grapheme_boundary(text, range.to()),
|
||||||
|
Open::Above => range.from(),
|
||||||
|
});
|
||||||
let new_line = match open {
|
let new_line = match open {
|
||||||
// adjust position to the end of the line (next line - 1)
|
// adjust position to the end of the line (next line - 1)
|
||||||
Open::Below => cursor_line + 1,
|
Open::Below => cursor_line + 1,
|
||||||
|
|
Loading…
Reference in a new issue