fix(mouse area): on_drag
This commit is contained in:
parent
9666e986f3
commit
f0899a2a81
1 changed files with 9 additions and 1 deletions
|
|
@ -406,8 +406,15 @@ fn update<Message: Clone, Theme, Renderer>(
|
||||||
let state: &mut State = tree.state.downcast_mut();
|
let state: &mut State = tree.state.downcast_mut();
|
||||||
let cursor_position = cursor.position();
|
let cursor_position = cursor.position();
|
||||||
|
|
||||||
|
if cursor_position.is_none() {
|
||||||
|
state.drag_initiated = None;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if let Event::Mouse(mouse::Event::CursorMoved { .. })
|
if let Event::Mouse(mouse::Event::CursorMoved { .. })
|
||||||
| Event::Touch(touch::Event::FingerMoved { .. }) = event
|
| Event::Touch(touch::Event::FingerMoved { .. })
|
||||||
|
| Event::Mouse(mouse::Event::CursorLeft)
|
||||||
|
| Event::Touch(touch::Event::FingerLost { .. }) = event
|
||||||
{
|
{
|
||||||
let was_hovered = state.is_hovered;
|
let was_hovered = state.is_hovered;
|
||||||
let bounds = layout.bounds();
|
let bounds = layout.bounds();
|
||||||
|
|
@ -484,6 +491,7 @@ fn update<Message: Clone, Theme, Renderer>(
|
||||||
if let Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left))
|
if let Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left))
|
||||||
| Event::Touch(touch::Event::FingerLifted { .. }) = event
|
| Event::Touch(touch::Event::FingerLifted { .. }) = event
|
||||||
{
|
{
|
||||||
|
state.drag_initiated = None;
|
||||||
if let Some(position) = cursor_position {
|
if let Some(position) = cursor_position {
|
||||||
let new_click = mouse::Click::new(
|
let new_click = mouse::Click::new(
|
||||||
position,
|
position,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue