From 5f2ec138d7b6793f781aab16ec59e0224ac4edef Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector0193@gmail.com>
Date: Thu, 22 Dec 2022 14:32:25 +0100
Subject: Implement `Widget::operate` for `Responsive`

---
 lazy/src/responsive.rs | 25 ++++++++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)

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,
-- 
cgit