From db2c1841cbc5ecbc9ebc43f4cf85f12cf0c77ca8 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Thu, 24 Mar 2016 14:22:49 -0700 Subject: Fix delete_char when selection range is empty An empty selection range should be treated the same as no selection. Fixes browserhtml/browserhtml#930. --- components/script/textinput.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'components/script/textinput.rs') diff --git a/components/script/textinput.rs b/components/script/textinput.rs index 35b49ee57a4..40ad401a903 100644 --- a/components/script/textinput.rs +++ b/components/script/textinput.rs @@ -20,7 +20,7 @@ pub enum Selection { NotSelected } -#[derive(JSTraceable, Copy, Clone, HeapSizeOf)] +#[derive(JSTraceable, Copy, Clone, HeapSizeOf, PartialEq)] pub struct TextPoint { /// 0-based line number pub line: usize, @@ -123,7 +123,7 @@ impl TextInput { /// Remove a character at the current editing point pub fn delete_char(&mut self, dir: Direction) { - if self.selection_begin.is_none() { + if self.selection_begin.is_none() || self.selection_begin == Some(self.edit_point) { self.adjust_horizontal_by_one(dir, Selection::Selected); } self.replace_selection(DOMString::new()); -- cgit v1.2.3