fix: rubber band selection not redrawing on mouse movement
This commit is contained in:
parent
67af455898
commit
de739425cb
1 changed files with 14 additions and 1 deletions
|
|
@ -563,6 +563,16 @@ fn update<Message: Clone>(
|
||||||
state.last_position = position_in;
|
state.last_position = position_in;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if state.drag_initiated.is_some()
|
||||||
|
&& matches!(
|
||||||
|
event,
|
||||||
|
Event::Mouse(mouse::Event::CursorMoved { .. })
|
||||||
|
| Event::Touch(touch::Event::FingerMoved { .. })
|
||||||
|
)
|
||||||
|
{
|
||||||
|
shell.request_redraw();
|
||||||
|
}
|
||||||
|
|
||||||
if let Event::Mouse(mouse::Event::CursorMoved { position }) = event {
|
if let Event::Mouse(mouse::Event::CursorMoved { position }) = event {
|
||||||
let virtual_position = Point::new(
|
let virtual_position = Point::new(
|
||||||
viewport.x - layout_bounds.x + position.x,
|
viewport.x - layout_bounds.x + position.x,
|
||||||
|
|
@ -639,6 +649,7 @@ fn update<Message: Clone>(
|
||||||
{
|
{
|
||||||
state.drag_initiated = None;
|
state.drag_initiated = None;
|
||||||
state.prev_click = None;
|
state.prev_click = None;
|
||||||
|
shell.request_redraw();
|
||||||
if let Some(message) = widget.on_drag_end.as_ref() {
|
if let Some(message) = widget.on_drag_end.as_ref() {
|
||||||
shell.publish(message(cursor.position_in(layout_bounds)));
|
shell.publish(message(cursor.position_in(layout_bounds)));
|
||||||
}
|
}
|
||||||
|
|
@ -658,7 +669,9 @@ fn update<Message: Clone>(
|
||||||
state.prev_click = None;
|
state.prev_click = None;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
state.drag_initiated = None;
|
if state.drag_initiated.take().is_some() {
|
||||||
|
shell.request_redraw();
|
||||||
|
}
|
||||||
if let Some(message) = widget.on_release.as_ref() {
|
if let Some(message) = widget.on_release.as_ref() {
|
||||||
shell.publish(message(cursor.position_in(layout_bounds)));
|
shell.publish(message(cursor.position_in(layout_bounds)));
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue