Set RTL minimal dash size to 2.0, add invalid dash size error to the `draw_dashed_line`.
This commit is contained in:
parent
c7aadab155
commit
7246b229e1
|
@ -1179,7 +1179,7 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
|
||||||
dot_ul_started = false;
|
dot_ul_started = false;
|
||||||
float y_off = TS->shaped_text_get_underline_position(rid);
|
float y_off = TS->shaped_text_get_underline_position(rid);
|
||||||
float underline_width = TS->shaped_text_get_underline_thickness(rid) * theme_cache.base_scale;
|
float underline_width = TS->shaped_text_get_underline_thickness(rid) * theme_cache.base_scale;
|
||||||
draw_dashed_line(dot_ul_start + Vector2(0, y_off), p_ofs + Vector2(off.x, off.y + y_off), dot_ul_color, underline_width, underline_width * 2);
|
draw_dashed_line(dot_ul_start + Vector2(0, y_off), p_ofs + Vector2(off.x, off.y + y_off), dot_ul_color, underline_width, MAX(2.0, underline_width * 2));
|
||||||
}
|
}
|
||||||
if (_find_strikethrough(it)) {
|
if (_find_strikethrough(it)) {
|
||||||
if (!st_started) {
|
if (!st_started) {
|
||||||
|
@ -1341,7 +1341,7 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
|
||||||
dot_ul_started = false;
|
dot_ul_started = false;
|
||||||
float y_off = TS->shaped_text_get_underline_position(rid);
|
float y_off = TS->shaped_text_get_underline_position(rid);
|
||||||
float underline_width = TS->shaped_text_get_underline_thickness(rid) * theme_cache.base_scale;
|
float underline_width = TS->shaped_text_get_underline_thickness(rid) * theme_cache.base_scale;
|
||||||
draw_dashed_line(dot_ul_start + Vector2(0, y_off), p_ofs + Vector2(off.x, off.y + y_off), dot_ul_color, underline_width, underline_width * 2);
|
draw_dashed_line(dot_ul_start + Vector2(0, y_off), p_ofs + Vector2(off.x, off.y + y_off), dot_ul_color, underline_width, MAX(2.0, underline_width * 2));
|
||||||
}
|
}
|
||||||
if (st_started) {
|
if (st_started) {
|
||||||
st_started = false;
|
st_started = false;
|
||||||
|
@ -1363,7 +1363,7 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
|
||||||
dot_ul_started = false;
|
dot_ul_started = false;
|
||||||
float y_off = TS->shaped_text_get_underline_position(rid);
|
float y_off = TS->shaped_text_get_underline_position(rid);
|
||||||
float underline_width = TS->shaped_text_get_underline_thickness(rid) * theme_cache.base_scale;
|
float underline_width = TS->shaped_text_get_underline_thickness(rid) * theme_cache.base_scale;
|
||||||
draw_dashed_line(dot_ul_start + Vector2(0, y_off), p_ofs + Vector2(off.x, off.y + y_off), dot_ul_color, underline_width, underline_width * 2);
|
draw_dashed_line(dot_ul_start + Vector2(0, y_off), p_ofs + Vector2(off.x, off.y + y_off), dot_ul_color, underline_width, MAX(2.0, underline_width * 2));
|
||||||
}
|
}
|
||||||
if (st_started) {
|
if (st_started) {
|
||||||
st_started = false;
|
st_started = false;
|
||||||
|
|
|
@ -513,11 +513,12 @@ bool CanvasItem::is_y_sort_enabled() const {
|
||||||
|
|
||||||
void CanvasItem::draw_dashed_line(const Point2 &p_from, const Point2 &p_to, const Color &p_color, real_t p_width, real_t p_dash, bool p_aligned) {
|
void CanvasItem::draw_dashed_line(const Point2 &p_from, const Point2 &p_to, const Color &p_color, real_t p_width, real_t p_dash, bool p_aligned) {
|
||||||
ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal.");
|
ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal.");
|
||||||
|
ERR_FAIL_COND(p_dash <= 0.0);
|
||||||
|
|
||||||
float length = (p_to - p_from).length();
|
float length = (p_to - p_from).length();
|
||||||
Vector2 step = p_dash * (p_to - p_from).normalized();
|
Vector2 step = p_dash * (p_to - p_from).normalized();
|
||||||
|
|
||||||
if (length < p_dash || step == Vector2() || p_dash <= 0.0) {
|
if (length < p_dash || step == Vector2()) {
|
||||||
RenderingServer::get_singleton()->canvas_item_add_line(canvas_item, p_from, p_to, p_color, p_width);
|
RenderingServer::get_singleton()->canvas_item_add_line(canvas_item, p_from, p_to, p_color, p_width);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue