diff options
Diffstat (limited to 'native/src/widget')
-rw-r--r-- | native/src/widget/mouse_listener.rs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/native/src/widget/mouse_listener.rs b/native/src/widget/mouse_listener.rs index 3db2184e..f9c3acac 100644 --- a/native/src/widget/mouse_listener.rs +++ b/native/src/widget/mouse_listener.rs @@ -271,9 +271,9 @@ fn update<Message: Clone, Renderer>( if !layout.bounds().contains(cursor_position) { if hovered { state.hovered = false; + if let Some(message) = widget.on_mouse_exit.clone() { shell.publish(message); - return event::Status::Captured; } } @@ -285,7 +285,8 @@ fn update<Message: Clone, Renderer>( if !hovered { if let Some(message) = widget.on_mouse_enter.clone() { shell.publish(message); - return event::Status::Captured; + + return event::Status::Ignored; } } @@ -294,6 +295,7 @@ fn update<Message: Clone, Renderer>( | Event::Touch(touch::Event::FingerPressed { .. }) = event { shell.publish(message); + return event::Status::Captured; } } @@ -303,6 +305,7 @@ fn update<Message: Clone, Renderer>( | Event::Touch(touch::Event::FingerLifted { .. }) = event { shell.publish(message); + return event::Status::Captured; } } @@ -312,6 +315,7 @@ fn update<Message: Clone, Renderer>( event { shell.publish(message); + return event::Status::Captured; } } @@ -322,6 +326,7 @@ fn update<Message: Clone, Renderer>( )) = event { shell.publish(message); + return event::Status::Captured; } } @@ -332,6 +337,7 @@ fn update<Message: Clone, Renderer>( )) = event { shell.publish(message); + return event::Status::Captured; } } @@ -342,6 +348,7 @@ fn update<Message: Clone, Renderer>( )) = event { shell.publish(message); + return event::Status::Captured; } } |