diff options
author | 2021-11-29 16:22:01 +0700 | |
---|---|---|
committer | 2021-11-29 16:22:01 +0700 | |
commit | bbd9355450bc2df3a2c0e37cc900ba00b26255af (patch) | |
tree | a6cf758c934638e3dd9586781dfb62e1cf028572 /native/src/widget/slider.rs | |
parent | f7792d89d64c39cdde9da030bec80fb6f461a0e3 (diff) | |
download | iced-bbd9355450bc2df3a2c0e37cc900ba00b26255af.tar.gz iced-bbd9355450bc2df3a2c0e37cc900ba00b26255af.tar.bz2 iced-bbd9355450bc2df3a2c0e37cc900ba00b26255af.zip |
Introduce `Shell` type in `iced_native`
Widgets now can invalidate the current layout of the application on demand.
Diffstat (limited to 'native/src/widget/slider.rs')
-rw-r--r-- | native/src/widget/slider.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/native/src/widget/slider.rs b/native/src/widget/slider.rs index 3ce53f6c..65632a5c 100644 --- a/native/src/widget/slider.rs +++ b/native/src/widget/slider.rs @@ -8,7 +8,7 @@ use crate::renderer; use crate::touch; use crate::{ Background, Clipboard, Color, Element, Hasher, Layout, Length, Point, - Rectangle, Size, Widget, + Rectangle, Shell, Size, Widget, }; use std::hash::Hash; @@ -191,7 +191,7 @@ where cursor_position: Point, _renderer: &Renderer, _clipboard: &mut dyn Clipboard, - messages: &mut Vec<Message>, + shell: &mut Shell<'_, Message>, ) -> event::Status { let is_dragging = self.state.is_dragging; @@ -220,7 +220,7 @@ where }; if (self.value.into() - new_value.into()).abs() > f64::EPSILON { - messages.push((self.on_change)(new_value)); + shell.publish((self.on_change)(new_value)); self.value = new_value; } @@ -241,7 +241,7 @@ where | Event::Touch(touch::Event::FingerLost { .. }) => { if is_dragging { if let Some(on_release) = self.on_release.clone() { - messages.push(on_release); + shell.publish(on_release); } self.state.is_dragging = false; |