Skip to content

Commit de73942

Browse files
hojjatabdollahimmstick
authored andcommitted
fix: rubber band selection not redrawing on mouse movement
1 parent 67af455 commit de73942

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

src/mouse_area.rs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,16 @@ fn update<Message: Clone>(
563563
state.last_position = position_in;
564564
}
565565

566+
if state.drag_initiated.is_some()
567+
&& matches!(
568+
event,
569+
Event::Mouse(mouse::Event::CursorMoved { .. })
570+
| Event::Touch(touch::Event::FingerMoved { .. })
571+
)
572+
{
573+
shell.request_redraw();
574+
}
575+
566576
if let Event::Mouse(mouse::Event::CursorMoved { position }) = event {
567577
let virtual_position = Point::new(
568578
viewport.x - layout_bounds.x + position.x,
@@ -639,6 +649,7 @@ fn update<Message: Clone>(
639649
{
640650
state.drag_initiated = None;
641651
state.prev_click = None;
652+
shell.request_redraw();
642653
if let Some(message) = widget.on_drag_end.as_ref() {
643654
shell.publish(message(cursor.position_in(layout_bounds)));
644655
}
@@ -658,7 +669,9 @@ fn update<Message: Clone>(
658669
state.prev_click = None;
659670
return;
660671
}
661-
state.drag_initiated = None;
672+
if state.drag_initiated.take().is_some() {
673+
shell.request_redraw();
674+
}
662675
if let Some(message) = widget.on_release.as_ref() {
663676
shell.publish(message(cursor.position_in(layout_bounds)));
664677

0 commit comments

Comments
 (0)