Skip to content

Commit

Permalink
Merge pull request godotengine#100208 from eviltrout/highlight-bg-fix
Browse files Browse the repository at this point in the history
Fix user selection on top of `bgcolor` areas in a `RichTextLabel`
  • Loading branch information
Repiteo committed Dec 11, 2024
2 parents e188cf6 + 1e749f6 commit 66dd289
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions scene/gui/rich_text_label.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1370,6 +1370,13 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
}
}
// Finish lines and boxes.
if (step == DRAW_STEP_BACKGROUND || step == DRAW_STEP_FOREGROUND) {
if (last_color.a > 0.0) {
Vector2 rect_off = p_ofs + Vector2(box_start - theme_cache.text_highlight_h_padding, off_step.y - l_ascent - theme_cache.text_highlight_v_padding);
Vector2 rect_size = Vector2(off_step.x - box_start + 2 * theme_cache.text_highlight_h_padding, l_size.y + 2 * theme_cache.text_highlight_v_padding);
RenderingServer::get_singleton()->canvas_item_add_rect(ci, Rect2(rect_off, rect_size), last_color);
}
}
if (step == DRAW_STEP_BACKGROUND) {
if (sel_start != -1) {
Color selection_bg = theme_cache.selection_color;
Expand All @@ -1380,13 +1387,6 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
}
}
}
if (step == DRAW_STEP_BACKGROUND || step == DRAW_STEP_FOREGROUND) {
if (last_color.a > 0.0) {
Vector2 rect_off = p_ofs + Vector2(box_start - theme_cache.text_highlight_h_padding, off_step.y - l_ascent - theme_cache.text_highlight_v_padding);
Vector2 rect_size = Vector2(off_step.x - box_start + 2 * theme_cache.text_highlight_h_padding, l_size.y + 2 * theme_cache.text_highlight_v_padding);
RenderingServer::get_singleton()->canvas_item_add_rect(ci, Rect2(rect_off, rect_size), last_color);
}
}
if (step == DRAW_STEP_TEXT) {
if (ul_started) {
ul_started = false;
Expand Down

0 comments on commit 66dd289

Please sign in to comment.