summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
authorLibravatar Cory Forsstrom <cforsstrom18@gmail.com>2022-10-27 17:40:18 -0700
committerLibravatar Cory Forsstrom <cforsstrom18@gmail.com>2022-10-27 17:40:18 -0700
commitf8c363eeacc6c0875834ea1b241de4540f55ba0c (patch)
treec370c8cd66726e18bfaa77b9296c231789358d0c /native
parent82217947aa80287282ed6deb02d238a31303e0d6 (diff)
downloadiced-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.rs6
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) {