From 140bea352e4d51a56f1c4de08581d88181cb9960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Thu, 19 Nov 2020 02:45:09 +0100 Subject: [PATCH] Disable dragging in `TextInput` after double click When using a trackpad, mouse move events may happen between the press/release events. This was incorrectly triggering selection dragging in the `TextInput` widget. Eventually, we should implement proper word-aware selection dragging. --- native/src/widget/text_input.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs index 6d194db5..c067de77 100644 --- a/native/src/widget/text_input.rs +++ b/native/src/widget/text_input.rs @@ -278,7 +278,6 @@ where Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) => { let is_clicked = layout.bounds().contains(cursor_position); - self.state.is_dragging = is_clicked; self.state.is_focused = is_clicked; if is_clicked { @@ -312,6 +311,8 @@ where } else { self.state.cursor.move_to(0); } + + self.state.is_dragging = true; } click::Kind::Double => { if self.is_secure { @@ -331,9 +332,12 @@ where self.value.next_end_of_word(position), ); } + + self.state.is_dragging = false; } click::Kind::Triple => { self.state.cursor.select_all(&self.value); + self.state.is_dragging = false; } }