From fff8389bbfe1a52b42b6840a2848dbd9dd75f4c3 Mon Sep 17 00:00:00 2001 From: Hojjat Date: Fri, 24 Feb 2023 08:39:24 -0700 Subject: [PATCH] Allow set_align to clear the alignment by setting it to None --- examples/editor-libcosmic/src/main.rs | 4 ++-- src/buffer_line.rs | 7 ++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/examples/editor-libcosmic/src/main.rs b/examples/editor-libcosmic/src/main.rs index c3abaef..4222359 100644 --- a/examples/editor-libcosmic/src/main.rs +++ b/examples/editor-libcosmic/src/main.rs @@ -334,9 +334,9 @@ fn update_alignment<'a, T: Edit<'a>>(editor: &mut T, align: Align) { std::cmp::Ordering::Equal => (current_line, current_line), }; for line in editor.buffer_mut().lines[start..=end].iter_mut() { - line.set_align(align); + line.set_align(Some(align)); } } else if let Some(line) = editor.buffer_mut().lines.get_mut(current_line) { - line.set_align(align); + line.set_align(Some(align)); } } diff --git a/src/buffer_line.rs b/src/buffer_line.rs index 57acdac..c1f5b92 100644 --- a/src/buffer_line.rs +++ b/src/buffer_line.rs @@ -104,10 +104,11 @@ impl BufferLine { /// Set the text alignment /// /// Will reset shape and layout if it differs from current alignment. + /// Setting to None will use `Align::Right` for RTL lines, and `Align::Left` for LTR lines. /// Returns true if the line was reset - pub fn set_align(&mut self, align: Align) -> bool { - if Some(align) != self.align { - self.align = Some(align); + pub fn set_align(&mut self, align: Option) -> bool { + if align != self.align { + self.align = align; self.reset_layout(); true } else {