summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-07-08 05:54:49 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-07-08 11:29:20 +0200
commit9fa0b4da5d5356cb8bd4e79911a939fee0104790 (patch)
tree67547cddb549eff1a4c46ae2da74b07263c5c450 /native
parent625979b6652a8a14a0eaf6bd62f1e9a8da0ae421 (diff)
downloadiced-9fa0b4da5d5356cb8bd4e79911a939fee0104790.tar.gz
iced-9fa0b4da5d5356cb8bd4e79911a939fee0104790.tar.bz2
iced-9fa0b4da5d5356cb8bd4e79911a939fee0104790.zip
Complete `hash_layout` for `menu::List`
Diffstat (limited to 'native')
-rw-r--r--native/src/overlay/menu.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/native/src/overlay/menu.rs b/native/src/overlay/menu.rs
index 2a19e286..32cbacce 100644
--- a/native/src/overlay/menu.rs
+++ b/native/src/overlay/menu.rs
@@ -113,6 +113,9 @@ where
fn hash_layout(&self, state: &mut Hasher, position: Point) {
use std::hash::Hash;
+ struct Marker;
+ std::any::TypeId::of::<Marker>().hash(state);
+
(position.x as u32).hash(state);
(position.y as u32).hash(state);
}
@@ -138,10 +141,11 @@ where
clipboard,
);
+ let option_was_selected = current_messages < messages.len();
+
match event {
Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left))
- if !bounds.contains(cursor_position)
- || current_messages < messages.len() =>
+ if !bounds.contains(cursor_position) || option_was_selected =>
{
*self.is_open = false;
}
@@ -245,7 +249,12 @@ where
fn hash_layout(&self, state: &mut Hasher) {
use std::hash::Hash as _;
- 0.hash(state);
+ struct Marker;
+ std::any::TypeId::of::<Marker>().hash(state);
+
+ self.options.len().hash(state);
+ self.text_size.hash(state);
+ self.padding.hash(state);
}
fn on_event(