diff options
author | 2024-09-09 23:53:34 +0200 | |
---|---|---|
committer | 2024-09-09 23:53:34 +0200 | |
commit | 0319e160b5c66bf54f027c07b33539f3309ebef7 (patch) | |
tree | 7f0379c6cee6bfbe04942729e27a92fcc488dc99 | |
parent | 630f3525ddc58f1ee8dfec2f7567f52ea77eaa6e (diff) | |
parent | 9edd805c0257cf360d7f9c0ee741c3508bdf8582 (diff) | |
download | iced-0319e160b5c66bf54f027c07b33539f3309ebef7.tar.gz iced-0319e160b5c66bf54f027c07b33539f3309ebef7.tar.bz2 iced-0319e160b5c66bf54f027c07b33539f3309ebef7.zip |
Merge pull request #2414 from IsaacMarovitz/mouse-button
Add `mouse::Button` to `mouse::Click`
Diffstat (limited to '')
-rw-r--r-- | core/src/mouse/click.rs | 13 | ||||
-rw-r--r-- | widget/src/text_editor.rs | 1 | ||||
-rw-r--r-- | widget/src/text_input.rs | 7 |
3 files changed, 17 insertions, 4 deletions
diff --git a/core/src/mouse/click.rs b/core/src/mouse/click.rs index 6f3844be..07a4db5a 100644 --- a/core/src/mouse/click.rs +++ b/core/src/mouse/click.rs @@ -1,4 +1,5 @@ //! Track mouse clicks. +use crate::mouse::Button; use crate::time::Instant; use crate::Point; @@ -6,6 +7,7 @@ use crate::Point; #[derive(Debug, Clone, Copy)] pub struct Click { kind: Kind, + button: Button, position: Point, time: Instant, } @@ -36,11 +38,17 @@ impl Kind { impl Click { /// Creates a new [`Click`] with the given position and previous last /// [`Click`]. - pub fn new(position: Point, previous: Option<Click>) -> Click { + pub fn new( + position: Point, + button: Button, + previous: Option<Click>, + ) -> Click { let time = Instant::now(); let kind = if let Some(previous) = previous { - if previous.is_consecutive(position, time) { + if previous.is_consecutive(position, time) + && button == previous.button + { previous.kind.next() } else { Kind::Single @@ -51,6 +59,7 @@ impl Click { Click { kind, + button, position, time, } diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index d1aa4640..e0102656 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -1056,6 +1056,7 @@ impl<Message> Update<Message> { let click = mouse::Click::new( cursor_position, + mouse::Button::Left, state.last_click, ); diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index 0a8e6690..d5ede524 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -656,8 +656,11 @@ where cursor_position.x - text_bounds.x - alignment_offset }; - let click = - mouse::Click::new(cursor_position, state.last_click); + let click = mouse::Click::new( + cursor_position, + mouse::Button::Left, + state.last_click, + ); match click.kind() { click::Kind::Single => { |