Skip to content

Commit c2ab040

Browse files
authored
Fix crash in text layout (#1468)
Fix text layout bug added in #1291
1 parent cf0338d commit c2ab040

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

epaint/src/text/text_layout.rs

+12-1
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ fn line_break(
249249
}
250250

251251
if row_start_idx < paragraph.glyphs.len() {
252-
if non_empty_rows == job.wrap.max_rows {
252+
if job.wrap.max_rows > 0 && non_empty_rows == job.wrap.max_rows {
253253
if let Some(last_row) = out_rows.last_mut() {
254254
replace_last_glyph_with_overflow_character(fonts, job, last_row);
255255
}
@@ -773,3 +773,14 @@ fn is_chinese(c: char) -> bool {
773773
|| ('\u{3400}' <= c && c <= '\u{4DBF}')
774774
|| ('\u{2B740}' <= c && c <= '\u{2B81F}')
775775
}
776+
777+
// ----------------------------------------------------------------------------
778+
779+
#[test]
780+
fn test_zero_max_width() {
781+
let mut fonts = FontsImpl::new(1.0, 1024, super::FontDefinitions::default());
782+
let mut layout_job = LayoutJob::single_section("W".into(), super::TextFormat::default());
783+
layout_job.wrap.max_width = 0.0;
784+
let galley = super::layout(&mut fonts, layout_job.into());
785+
assert_eq!(galley.rows.len(), 1);
786+
}

0 commit comments

Comments
 (0)