From 3f968b8c876b7c2351232856887fb9c3e3db3130 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 12 Nov 2020 00:09:52 +0100 Subject: Make `Widget::on_event` return an `event::Status` --- native/src/widget/row.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'native/src/widget/row.rs') diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs index bc8a3df1..7d7595f7 100644 --- a/native/src/widget/row.rs +++ b/native/src/widget/row.rs @@ -1,9 +1,9 @@ //! Distribute content horizontally. +use crate::event::{self, Event}; use crate::layout; use crate::overlay; use crate::{ - Align, Clipboard, Element, Event, Hasher, Layout, Length, Point, Rectangle, - Widget, + Align, Clipboard, Element, Hasher, Layout, Length, Point, Rectangle, Widget, }; use std::hash::Hash; @@ -162,19 +162,21 @@ where messages: &mut Vec, renderer: &Renderer, clipboard: Option<&dyn Clipboard>, - ) { + ) -> event::Status { self.children.iter_mut().zip(layout.children()).for_each( |(child, layout)| { - child.widget.on_event( + let _ = child.widget.on_event( event.clone(), layout, cursor_position, messages, renderer, clipboard, - ) + ); }, ); + + event::Status::Ignored } fn draw( -- cgit From 451bf8dc841b8f60f2a5664b0e8000ad40dfe114 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 12 Nov 2020 00:48:40 +0100 Subject: Implement event capturing for `Row` --- native/src/widget/row.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'native/src/widget/row.rs') diff --git a/native/src/widget/row.rs b/native/src/widget/row.rs index 7d7595f7..6b09d0c8 100644 --- a/native/src/widget/row.rs +++ b/native/src/widget/row.rs @@ -163,20 +163,20 @@ where renderer: &Renderer, clipboard: Option<&dyn Clipboard>, ) -> event::Status { - self.children.iter_mut().zip(layout.children()).for_each( - |(child, layout)| { - let _ = child.widget.on_event( + self.children + .iter_mut() + .zip(layout.children()) + .map(|(child, layout)| { + child.widget.on_event( event.clone(), layout, cursor_position, messages, renderer, clipboard, - ); - }, - ); - - event::Status::Ignored + ) + }) + .fold(event::Status::Ignored, event::Status::merge) } fn draw( -- cgit