From 6b359b496cf435c26f982ee0e52d7324c79ad1d5 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 13 Apr 2023 06:44:51 +0200 Subject: Avoid cloning messages unnecessarily in `MouseListener` --- native/src/widget/mouse_listener.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'native/src') diff --git a/native/src/widget/mouse_listener.rs b/native/src/widget/mouse_listener.rs index a7a06bcc..00e20c04 100644 --- a/native/src/widget/mouse_listener.rs +++ b/native/src/widget/mouse_listener.rs @@ -286,64 +286,64 @@ fn update( } } - if let Some(message) = widget.on_press.clone() { + if let Some(message) = widget.on_press.as_ref() { if let Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) | Event::Touch(touch::Event::FingerPressed { .. }) = event { - shell.publish(message); + shell.publish(message.clone()); return event::Status::Captured; } } - if let Some(message) = widget.on_release.clone() { + if let Some(message) = widget.on_release.as_ref() { if let Event::Mouse(mouse::Event::ButtonReleased(mouse::Button::Left)) | Event::Touch(touch::Event::FingerLifted { .. }) = event { - shell.publish(message); + shell.publish(message.clone()); return event::Status::Captured; } } - if let Some(message) = widget.on_right_press.clone() { + if let Some(message) = widget.on_right_press.as_ref() { if let Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Right)) = event { - shell.publish(message); + shell.publish(message.clone()); return event::Status::Captured; } } - if let Some(message) = widget.on_right_release.clone() { + if let Some(message) = widget.on_right_release.as_ref() { if let Event::Mouse(mouse::Event::ButtonReleased( mouse::Button::Right, )) = event { - shell.publish(message); + shell.publish(message.clone()); return event::Status::Captured; } } - if let Some(message) = widget.on_middle_press.clone() { + if let Some(message) = widget.on_middle_press.as_ref() { if let Event::Mouse(mouse::Event::ButtonPressed( mouse::Button::Middle, )) = event { - shell.publish(message); + shell.publish(message.clone()); return event::Status::Captured; } } - if let Some(message) = widget.on_middle_release.clone() { + if let Some(message) = widget.on_middle_release.as_ref() { if let Event::Mouse(mouse::Event::ButtonReleased( mouse::Button::Middle, )) = event { - shell.publish(message); + shell.publish(message.clone()); return event::Status::Captured; } -- cgit