From 82675708de37ab37c7b59e172a36193a1707241d Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Tue, 17 Sep 2024 23:48:41 +0900 Subject: [PATCH 1/4] Update visuals.rs --- crates/egui/src/text_selection/visuals.rs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/crates/egui/src/text_selection/visuals.rs b/crates/egui/src/text_selection/visuals.rs index 3182b2b9e39..a5bda0593a2 100644 --- a/crates/egui/src/text_selection/visuals.rs +++ b/crates/egui/src/text_selection/visuals.rs @@ -12,8 +12,9 @@ pub struct RowVertexIndices { /// Adds text selection rectangles to the galley. pub fn paint_text_selection( + ui: &Ui, + galley_pos: crate::Pos2, galley: &mut Arc, - visuals: &Visuals, cursor_range: &CursorRange, mut new_vertex_indices: Option<&mut Vec>, ) { @@ -25,7 +26,7 @@ pub fn paint_text_selection( // and so we need to clone it if it is shared: let galley: &mut Galley = Arc::make_mut(galley); - let color = visuals.selection.bg_fill; + let color = ui.visuals().selection.bg_fill; let [min, max] = cursor_range.sorted_cursors(); let min = min.rcursor; let max = max.rcursor; @@ -48,6 +49,13 @@ pub fn paint_text_selection( row.rect.right() + newline_size }; + let rect = Rect::from_min_max( + galley_pos + vec2(left, row.min_y()), + galley_pos + vec2(right, row.max_y()), + ); + let weak_color = color.linear_multiply(0.5); + let _shape_idx = ui.painter().rect_filled(rect, 0.0, weak_color); + let rect = Rect::from_min_max(pos2(left, row.min_y()), pos2(right, row.max_y())); let mesh = &mut row.visuals.mesh; From 5acbfb40648e599f0d08bb127b65ff94f3d35edb Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Tue, 17 Sep 2024 23:49:51 +0900 Subject: [PATCH 2/4] Update builder.rs --- crates/egui/src/widgets/text_edit/builder.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/egui/src/widgets/text_edit/builder.rs b/crates/egui/src/widgets/text_edit/builder.rs index 991ab01c551..b7fa63ffbf4 100644 --- a/crates/egui/src/widgets/text_edit/builder.rs +++ b/crates/egui/src/widgets/text_edit/builder.rs @@ -702,7 +702,7 @@ impl<'t> TextEdit<'t> { if has_focus { if let Some(cursor_range) = state.cursor.range(&galley) { // Add text selection rectangles to the galley: - paint_text_selection(&mut galley, ui.visuals(), &cursor_range, None); + paint_text_selection(ui, galley_pos, &mut galley, &cursor_range, None); } } From ac1dddcc4beca2f5e0c642f6cccd16beb931e5f2 Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Tue, 17 Sep 2024 23:51:30 +0900 Subject: [PATCH 3/4] Update label_text_selection.rs --- crates/egui/src/text_selection/label_text_selection.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/egui/src/text_selection/label_text_selection.rs b/crates/egui/src/text_selection/label_text_selection.rs index fe5eac00e78..cc9d176fdd4 100644 --- a/crates/egui/src/text_selection/label_text_selection.rs +++ b/crates/egui/src/text_selection/label_text_selection.rs @@ -593,8 +593,9 @@ impl LabelSelectionState { if let Some(cursor_range) = cursor_range { paint_text_selection( + ui, + galley_pos, galley, - ui.visuals(), &cursor_range, Some(&mut new_vertex_indices), ); From a64a2cfb390490351d6b546ca41223f905416d44 Mon Sep 17 00:00:00 2001 From: rustbasic <127506429+rustbasic@users.noreply.github.com> Date: Wed, 18 Sep 2024 01:39:58 +0900 Subject: [PATCH 4/4] Update visuals.rs --- crates/egui/src/text_selection/visuals.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crates/egui/src/text_selection/visuals.rs b/crates/egui/src/text_selection/visuals.rs index a5bda0593a2..dc195d9ee72 100644 --- a/crates/egui/src/text_selection/visuals.rs +++ b/crates/egui/src/text_selection/visuals.rs @@ -53,8 +53,7 @@ pub fn paint_text_selection( galley_pos + vec2(left, row.min_y()), galley_pos + vec2(right, row.max_y()), ); - let weak_color = color.linear_multiply(0.5); - let _shape_idx = ui.painter().rect_filled(rect, 0.0, weak_color); + let _shape_idx = ui.painter().rect_filled(rect, 0.0, color); let rect = Rect::from_min_max(pos2(left, row.min_y()), pos2(right, row.max_y())); let mesh = &mut row.visuals.mesh;