This commit is contained in:
Ashley Wulber 2024-10-18 10:11:22 -04:00
parent df4b94edf2
commit 2dd6137459
No known key found for this signature in database
GPG key ID: 5216D4F46A90A820
19 changed files with 42 additions and 53 deletions

View file

@ -164,11 +164,11 @@ impl Default for State {
fn default() -> Self {
Self {
is_hovered: Default::default(),
drag_initiated: Default::default(),
drag_initiated: None,
is_out_of_bounds: true,
last_click: Default::default(),
last_click: None,
cursor_position: None,
bounds: Default::default(),
bounds: Rectangle::default(),
previous_click: None,
}
}
@ -351,7 +351,7 @@ where
renderer: &Renderer,
dnd_rectangles: &mut crate::core::clipboard::DndDestinationRectangles,
) {
if let Some(state) = state.children.iter().next() {
if let Some(state) = state.children.first() {
self.content.as_widget().drag_destinations(
state,
layout,
@ -420,20 +420,19 @@ fn update<Message: Clone, Theme, Renderer>(
}
if !cursor.is_over(layout.bounds()) {
if !state.is_out_of_bounds {
if widget
if !state.is_out_of_bounds
&& widget
.on_enter
.as_ref()
.or(widget.on_exit.as_ref())
.is_some()
{
if let Event::Mouse(mouse::Event::CursorMoved { .. }) = event {
state.is_out_of_bounds = true;
if let Some(message) = widget.on_exit.as_ref() {
shell.publish(message.clone());
}
return;
{
if let Event::Mouse(mouse::Event::CursorMoved { .. }) = event {
state.is_out_of_bounds = true;
if let Some(message) = widget.on_exit.as_ref() {
shell.publish(message.clone());
}
return;
}
}