summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-10-25 19:28:18 +0200
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-11-05 23:52:58 +0100
commitdcc184b01b753dbecb500205391f6eaaa21c8683 (patch)
tree9f1854261c3b3805e28f524df65487c09c9729f7 /runtime
parent752403d70c851ece620c4007710062b158e8dec3 (diff)
downloadiced-dcc184b01b753dbecb500205391f6eaaa21c8683.tar.gz
iced-dcc184b01b753dbecb500205391f6eaaa21c8683.tar.bz2
iced-dcc184b01b753dbecb500205391f6eaaa21c8683.zip
Replace `event::Status` in `Widget::on_event` with `Shell::capture_event`
Diffstat (limited to 'runtime')
-rw-r--r--runtime/src/overlay/nested.rs74
-rw-r--r--runtime/src/user_interface.rs10
2 files changed, 40 insertions, 44 deletions
diff --git a/runtime/src/overlay/nested.rs b/runtime/src/overlay/nested.rs
index da3e6929..45f6b220 100644
--- a/runtime/src/overlay/nested.rs
+++ b/runtime/src/overlay/nested.rs
@@ -166,7 +166,7 @@ where
renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>,
- ) -> event::Status {
+ ) {
fn recurse<Message, Theme, Renderer>(
element: &mut overlay::Element<'_, Message, Theme, Renderer>,
layout: Layout<'_>,
@@ -175,31 +175,30 @@ where
renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>,
- ) -> (event::Status, bool)
+ ) -> bool
where
Renderer: renderer::Renderer,
{
let mut layouts = layout.children();
if let Some(layout) = layouts.next() {
- let (nested_status, nested_is_over) =
- if let Some((mut nested, nested_layout)) =
- element.overlay(layout, renderer).zip(layouts.next())
- {
- recurse(
- &mut nested,
- nested_layout,
- event.clone(),
- cursor,
- renderer,
- clipboard,
- shell,
- )
- } else {
- (event::Status::Ignored, false)
- };
+ let nested_is_over = if let Some((mut nested, nested_layout)) =
+ element.overlay(layout, renderer).zip(layouts.next())
+ {
+ recurse(
+ &mut nested,
+ nested_layout,
+ event.clone(),
+ cursor,
+ renderer,
+ clipboard,
+ shell,
+ )
+ } else {
+ false
+ };
- if matches!(nested_status, event::Status::Ignored) {
+ if shell.event_status() == event::Status::Ignored {
let is_over = nested_is_over
|| cursor
.position()
@@ -212,30 +211,29 @@ where
})
.unwrap_or_default();
- (
- element.on_event(
- event,
- layout,
- if nested_is_over {
- mouse::Cursor::Unavailable
- } else {
- cursor
- },
- renderer,
- clipboard,
- shell,
- ),
- is_over,
- )
+ element.on_event(
+ event,
+ layout,
+ if nested_is_over {
+ mouse::Cursor::Unavailable
+ } else {
+ cursor
+ },
+ renderer,
+ clipboard,
+ shell,
+ );
+
+ is_over
} else {
- (nested_status, nested_is_over)
+ nested_is_over
}
} else {
- (event::Status::Ignored, false)
+ false
}
}
- let (status, _) = recurse(
+ let _ = recurse(
&mut self.overlay,
layout,
event,
@@ -244,8 +242,6 @@ where
clipboard,
shell,
);
-
- status
}
/// Returns the current [`mouse::Interaction`] of the [`Nested`] overlay.
diff --git a/runtime/src/user_interface.rs b/runtime/src/user_interface.rs
index 8dfc97a7..cae17bcc 100644
--- a/runtime/src/user_interface.rs
+++ b/runtime/src/user_interface.rs
@@ -210,7 +210,7 @@ where
for event in events.iter().cloned() {
let mut shell = Shell::new(messages);
- let event_status = overlay.on_event(
+ overlay.on_event(
event,
Layout::new(&layout),
cursor,
@@ -219,7 +219,7 @@ where
&mut shell,
);
- event_statuses.push(event_status);
+ event_statuses.push(shell.event_status());
match (redraw_request, shell.redraw_request()) {
(None, Some(at)) => {
@@ -308,7 +308,7 @@ where
let mut shell = Shell::new(messages);
- let event_status = self.root.as_widget_mut().on_event(
+ self.root.as_widget_mut().on_event(
&mut self.state,
event,
Layout::new(&self.base),
@@ -319,7 +319,7 @@ where
&viewport,
);
- if matches!(event_status, event::Status::Captured) {
+ if shell.event_status() == event::Status::Captured {
self.overlay = None;
}
@@ -347,7 +347,7 @@ where
outdated = true;
}
- event_status.merge(overlay_status)
+ shell.event_status().merge(overlay_status)
})
.collect();