From b55d4d1021b188c4a0b1fa0a3cb169cc47b49a0e Mon Sep 17 00:00:00 2001 From: Kamil Jarosz Date: Thu, 27 Jun 2024 15:23:15 +0200 Subject: [PATCH] avm2: Fix TextField.getLineText() This patch makes the implementation more performant, simpler, and fixes its behavior related to returning the line delimiter and tabs. --- core/src/display_object/edit_text.rs | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/core/src/display_object/edit_text.rs b/core/src/display_object/edit_text.rs index 40dabbccd..8c6c12e54 100644 --- a/core/src/display_object/edit_text.rs +++ b/core/src/display_object/edit_text.rs @@ -1920,18 +1920,8 @@ impl<'gc> EditText<'gc> { pub fn line_text(self, line: usize) -> Option { let read = self.0.read(); let line = read.layout.lines().get(line)?; - let text = read.text_spans.text(); - - let mut line_text = WString::new(); - for layout_box in line.boxes_iter() { - if let LayoutContent::Text { start, end, .. } = layout_box.content() { - if let Some(box_tex) = text.slice(*start..*end) { - line_text.push_str(box_tex); - } - } - } - - Some(line_text) + let line_text = read.text_spans.text().slice(line.text_range())?; + Some(WString::from_wstr(line_text)) } pub fn line_offset(self, line: usize) -> Option {