diff options
author | 2022-12-22 14:32:25 +0100 | |
---|---|---|
committer | 2022-12-22 14:32:25 +0100 | |
commit | 5f2ec138d7b6793f781aab16ec59e0224ac4edef (patch) | |
tree | ecd41b861f0ff38736373f532ee2c7d2664dd420 /lazy | |
parent | 0e9c1ab192279d1a3a88815080e043f434aa380e (diff) | |
download | iced-5f2ec138d7b6793f781aab16ec59e0224ac4edef.tar.gz iced-5f2ec138d7b6793f781aab16ec59e0224ac4edef.tar.bz2 iced-5f2ec138d7b6793f781aab16ec59e0224ac4edef.zip |
Implement `Widget::operate` for `Responsive`
Diffstat (limited to 'lazy')
-rw-r--r-- | lazy/src/responsive.rs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/lazy/src/responsive.rs b/lazy/src/responsive.rs index 5e1b5dff..945c935a 100644 --- a/lazy/src/responsive.rs +++ b/lazy/src/responsive.rs @@ -3,8 +3,8 @@ use iced_native::layout::{self, Layout}; use iced_native::mouse; use iced_native::overlay; use iced_native::renderer; -use iced_native::widget::horizontal_space; use iced_native::widget::tree::{self, Tree}; +use iced_native::widget::{self, horizontal_space}; use iced_native::{ Clipboard, Element, Length, Point, Rectangle, Shell, Size, Widget, }; @@ -142,6 +142,29 @@ where layout::Node::new(limits.max()) } + fn operate( + &self, + tree: &mut Tree, + layout: Layout<'_>, + renderer: &Renderer, + operation: &mut dyn widget::Operation<Message>, + ) { + let state = tree.state.downcast_mut::<State>(); + let mut content = self.content.borrow_mut(); + + content.resolve( + &mut state.tree.borrow_mut(), + renderer, + layout, + &self.view, + |tree, renderer, layout, element| { + element + .as_widget() + .operate(tree, layout, renderer, operation); + }, + ); + } + fn on_event( &mut self, tree: &mut Tree, |