diff options
author | 2022-10-27 17:40:18 -0700 | |
---|---|---|
committer | 2022-10-27 17:40:18 -0700 | |
commit | f8c363eeacc6c0875834ea1b241de4540f55ba0c (patch) | |
tree | c370c8cd66726e18bfaa77b9296c231789358d0c /native | |
parent | 82217947aa80287282ed6deb02d238a31303e0d6 (diff) | |
download | iced-f8c363eeacc6c0875834ea1b241de4540f55ba0c.tar.gz iced-f8c363eeacc6c0875834ea1b241de4540f55ba0c.tar.bz2 iced-f8c363eeacc6c0875834ea1b241de4540f55ba0c.zip |
Fix drop down not closing when inside scrollable
and user clicks outside the scrollable. This is because the scrollable
sets -1.0 on cursor.y for any events where cursor is outside it's
bounds. I'm not sure why picklist had this logic to stay open on -1.0 /
-1.0, any click outside the overlay should close it.
Diffstat (limited to 'native')
-rw-r--r-- | native/src/widget/pick_list.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/native/src/widget/pick_list.rs b/native/src/widget/pick_list.rs index c334804e..896f5b35 100644 --- a/native/src/widget/pick_list.rs +++ b/native/src/widget/pick_list.rs @@ -348,9 +348,9 @@ where let state = state(); let event_status = if state.is_open { - // TODO: Encode cursor availability in the type system - state.is_open = - cursor_position.x < 0.0 || cursor_position.y < 0.0; + // Event wasn't processed by overlay, so cursor was clicked either outside it's + // bounds or on the drop-down, either way we close the overlay. + state.is_open = false; event::Status::Captured } else if layout.bounds().contains(cursor_position) { |