Browse Source

Don't paint insertion point if text is immutable (#1523)

pull/1533/head
trevyn 3 years ago
committed by GitHub
parent
commit
888cd9c3eb
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 33
      egui/src/widgets/text_edit/builder.rs

33
egui/src/widgets/text_edit/builder.rs

@ -579,23 +579,26 @@ impl<'t> TextEdit<'t> {
// We paint the cursor on top of the text, in case
// the text galley has backgrounds (as e.g. `code` snippets in markup do).
paint_cursor_selection(ui, &painter, text_draw_pos, &galley, &cursor_range);
let cursor_pos = paint_cursor_end(
ui,
row_height,
&painter,
text_draw_pos,
&galley,
&cursor_range.primary,
);
if response.changed || selection_changed {
ui.scroll_to_rect(cursor_pos, None); // keep cursor in view
}
if text.is_mutable() {
let cursor_pos = paint_cursor_end(
ui,
row_height,
&painter,
text_draw_pos,
&galley,
&cursor_range.primary,
);
if response.changed || selection_changed {
ui.scroll_to_rect(cursor_pos, None); // keep cursor in view
}
if interactive && text.is_mutable() {
// egui_web uses `text_cursor_pos` when showing IME,
// so only set it when text is editable and visible!
ui.ctx().output().text_cursor_pos = Some(cursor_pos.left_top());
if interactive {
// egui_web uses `text_cursor_pos` when showing IME,
// so only set it when text is editable and visible!
ui.ctx().output().text_cursor_pos = Some(cursor_pos.left_top());
}
}
}
}

Loading…
Cancel
Save