fix(mouse_area): avoid processing a double click twice

This commit is contained in:
Ashley Wulber 2026-03-11 22:31:34 -04:00 committed by Ashley Wulber
parent fdf00170c3
commit 88f3b00d96

View file

@ -475,7 +475,11 @@ fn update<Message: Clone, Theme, Renderer>(
if new_click.kind() == mouse::click::Kind::Double
&& let Some(double_press) = widget.on_double_press.as_ref()
{
state.drag_initiated = None;
shell.publish(double_press.clone());
shell.capture_event();
state.last_press = Some(new_click);
return;
} else if let Some(on_press_message) = widget.on_press.as_ref() {
shell.publish(on_press_message.clone());
}
@ -502,6 +506,9 @@ fn update<Message: Clone, Theme, Renderer>(
&& let Some(double_press) = widget.on_double_click.as_ref()
{
shell.publish(double_press.clone());
shell.capture_event();
state.previous_click = Some(new_click);
return;
} else if let Some(on_press_message) = widget.on_release.as_ref() {
shell.publish(on_press_message.clone());
}