Simplify IME cursor pos handling in TextEdit
This commit is contained in:
parent
6a576f4c34
commit
f4ddc21740
1 changed files with 9 additions and 11 deletions
|
@ -496,7 +496,6 @@ impl<'t, S: TextBuffer> TextEdit<'t, S> {
|
||||||
ui.output().cursor_icon = CursorIcon::Text;
|
ui.output().cursor_icon = CursorIcon::Text;
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut text_cursor = None;
|
|
||||||
if ui.memory().has_focus(id) && enabled {
|
if ui.memory().has_focus(id) && enabled {
|
||||||
ui.memory().lock_focus(id, lock_focus);
|
ui.memory().lock_focus(id, lock_focus);
|
||||||
|
|
||||||
|
@ -667,7 +666,6 @@ impl<'t, S: TextBuffer> TextEdit<'t, S> {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
text_cursor = Some(cursorp);
|
|
||||||
state.cursorp = Some(cursorp);
|
state.cursorp = Some(cursorp);
|
||||||
|
|
||||||
state
|
state
|
||||||
|
@ -676,18 +674,18 @@ impl<'t, S: TextBuffer> TextEdit<'t, S> {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ui.memory().has_focus(id) {
|
if ui.memory().has_focus(id) {
|
||||||
{
|
|
||||||
let mut output = ui.ctx().output();
|
|
||||||
output.text_cursor_pos = text_cursor.map(|c| {
|
|
||||||
galley
|
|
||||||
.pos_from_cursor(&c.primary)
|
|
||||||
.translate(response.rect.min.to_vec2())
|
|
||||||
.left_top()
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if let Some(cursorp) = state.cursorp {
|
if let Some(cursorp) = state.cursorp {
|
||||||
paint_cursor_selection(ui, response.rect.min, &galley, &cursorp);
|
paint_cursor_selection(ui, response.rect.min, &galley, &cursorp);
|
||||||
paint_cursor_end(ui, response.rect.min, &galley, &cursorp.primary);
|
paint_cursor_end(ui, response.rect.min, &galley, &cursorp.primary);
|
||||||
|
|
||||||
|
if enabled {
|
||||||
|
ui.ctx().output().text_cursor_pos = Some(
|
||||||
|
galley
|
||||||
|
.pos_from_cursor(&cursorp.primary)
|
||||||
|
.translate(response.rect.min.to_vec2())
|
||||||
|
.left_top(),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue