From afef368d8a920c7702048d3b1604b2046fe46ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Mon, 3 Feb 2025 03:22:10 +0100 Subject: [PATCH] Take `Event` by reference in `Widget::update` --- core/src/element.rs | 4 ++-- core/src/overlay.rs | 2 +- core/src/overlay/element.rs | 4 ++-- core/src/overlay/group.rs | 11 ++------- core/src/widget.rs | 2 +- examples/bezier_tool/src/main.rs | 2 +- examples/game_of_life/src/main.rs | 4 ++-- examples/loading_spinners/src/circular.rs | 4 ++-- examples/loading_spinners/src/linear.rs | 4 ++-- examples/multitouch/src/main.rs | 4 ++-- examples/sierpinski_triangle/src/main.rs | 2 +- examples/toast/src/main.rs | 6 ++--- runtime/src/overlay/nested.rs | 6 ++--- runtime/src/user_interface.rs | 3 +-- widget/src/button.rs | 4 ++-- widget/src/canvas.rs | 2 +- widget/src/canvas/program.rs | 4 ++-- widget/src/checkbox.rs | 2 +- widget/src/column.rs | 10 ++------- widget/src/combo_box.rs | 6 ++--- widget/src/container.rs | 2 +- widget/src/helpers.rs | 16 +++++--------- widget/src/image/viewer.rs | 6 ++--- widget/src/keyed/column.rs | 10 ++------- widget/src/lazy.rs | 4 ++-- widget/src/lazy/component.rs | 4 ++-- widget/src/lazy/responsive.rs | 4 ++-- widget/src/mouse_area.rs | 8 +++---- widget/src/overlay/menu.rs | 4 ++-- widget/src/pane_grid.rs | 13 +++-------- widget/src/pane_grid/content.rs | 4 ++-- widget/src/pane_grid/title_bar.rs | 8 +++---- widget/src/pick_list.rs | 8 +++---- widget/src/pin.rs | 2 +- widget/src/pop.rs | 2 +- widget/src/radio.rs | 2 +- widget/src/row.rs | 12 +++------- widget/src/scrollable.rs | 8 +++---- widget/src/shader.rs | 4 ++-- widget/src/shader/program.rs | 2 +- widget/src/slider.rs | 2 +- widget/src/stack.rs | 10 ++------- widget/src/text/rich.rs | 2 +- widget/src/text_editor.rs | 27 ++++++++++++----------- widget/src/text_input.rs | 2 +- widget/src/themer.rs | 4 ++-- widget/src/toggler.rs | 2 +- widget/src/tooltip.rs | 2 +- widget/src/vertical_slider.rs | 6 ++--- 49 files changed, 111 insertions(+), 155 deletions(-) diff --git a/core/src/element.rs b/core/src/element.rs index 82ba753b48..ede9e16cfe 100644 --- a/core/src/element.rs +++ b/core/src/element.rs @@ -311,7 +311,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -447,7 +447,7 @@ where fn update( &mut self, state: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/core/src/overlay.rs b/core/src/overlay.rs index 383663af37..94239152b1 100644 --- a/core/src/overlay.rs +++ b/core/src/overlay.rs @@ -58,7 +58,7 @@ where /// By default, it does nothing. fn update( &mut self, - _event: Event, + _event: &Event, _layout: Layout<'_>, _cursor: mouse::Cursor, _renderer: &Renderer, diff --git a/core/src/overlay/element.rs b/core/src/overlay/element.rs index 7a1796634a..de6e73fdad 100644 --- a/core/src/overlay/element.rs +++ b/core/src/overlay/element.rs @@ -51,7 +51,7 @@ where /// Processes a runtime [`Event`]. pub fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -150,7 +150,7 @@ where fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/core/src/overlay/group.rs b/core/src/overlay/group.rs index e07744e352..970c1b0e89 100644 --- a/core/src/overlay/group.rs +++ b/core/src/overlay/group.rs @@ -74,7 +74,7 @@ where fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -82,14 +82,7 @@ where shell: &mut Shell<'_, Message>, ) { for (child, layout) in self.children.iter_mut().zip(layout.children()) { - child.update( - event.clone(), - layout, - cursor, - renderer, - clipboard, - shell, - ); + child.update(event, layout, cursor, renderer, clipboard, shell); } } diff --git a/core/src/widget.rs b/core/src/widget.rs index 2a40f8234a..3c9c50ab28 100644 --- a/core/src/widget.rs +++ b/core/src/widget.rs @@ -114,7 +114,7 @@ where fn update( &mut self, _state: &mut Tree, - _event: Event, + _event: &Event, _layout: Layout<'_>, _cursor: mouse::Cursor, _renderer: &Renderer, diff --git a/examples/bezier_tool/src/main.rs b/examples/bezier_tool/src/main.rs index 4d438bd9e2..95ad299dbc 100644 --- a/examples/bezier_tool/src/main.rs +++ b/examples/bezier_tool/src/main.rs @@ -93,7 +93,7 @@ mod bezier { fn update( &self, state: &mut Self::State, - event: Event, + event: &Event, bounds: Rectangle, cursor: mouse::Cursor, ) -> Option> { diff --git a/examples/game_of_life/src/main.rs b/examples/game_of_life/src/main.rs index 1008e477d2..dec3df7f83 100644 --- a/examples/game_of_life/src/main.rs +++ b/examples/game_of_life/src/main.rs @@ -380,7 +380,7 @@ mod grid { fn update( &self, interaction: &mut Interaction, - event: Event, + event: &Event, bounds: Rectangle, cursor: mouse::Cursor, ) -> Option> { @@ -471,7 +471,7 @@ mod grid { _ => action.and_capture(), }) } - mouse::Event::WheelScrolled { delta } => match delta { + mouse::Event::WheelScrolled { delta } => match *delta { mouse::ScrollDelta::Lines { y, .. } | mouse::ScrollDelta::Pixels { y, .. } => { if y < 0.0 && self.scaling > Self::MIN_SCALING diff --git a/examples/loading_spinners/src/circular.rs b/examples/loading_spinners/src/circular.rs index 33232fac7e..24293138bc 100644 --- a/examples/loading_spinners/src/circular.rs +++ b/examples/loading_spinners/src/circular.rs @@ -264,7 +264,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, _layout: Layout<'_>, _cursor: mouse::Cursor, _renderer: &Renderer, @@ -278,7 +278,7 @@ where state.animation = state.animation.timed_transition( self.cycle_duration, self.rotation_duration, - now, + *now, ); state.cache.clear(); diff --git a/examples/loading_spinners/src/linear.rs b/examples/loading_spinners/src/linear.rs index a10b64f03e..a6713c7a7a 100644 --- a/examples/loading_spinners/src/linear.rs +++ b/examples/loading_spinners/src/linear.rs @@ -178,7 +178,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, _layout: Layout<'_>, _cursor: mouse::Cursor, _renderer: &Renderer, @@ -189,7 +189,7 @@ where let state = tree.state.downcast_mut::(); if let Event::Window(window::Event::RedrawRequested(now)) = event { - *state = state.timed_transition(self.cycle_duration, now); + *state = state.timed_transition(self.cycle_duration, *now); shell.request_redraw(); } diff --git a/examples/multitouch/src/main.rs b/examples/multitouch/src/main.rs index 5f4a5c90ec..bda3b8f759 100644 --- a/examples/multitouch/src/main.rs +++ b/examples/multitouch/src/main.rs @@ -55,11 +55,11 @@ impl canvas::Program for Multitouch { fn update( &self, _state: &mut Self::State, - event: Event, + event: &Event, _bounds: Rectangle, _cursor: mouse::Cursor, ) -> Option> { - let message = match event { + let message = match event.clone() { Event::Touch( touch::Event::FingerPressed { id, position } | touch::Event::FingerMoved { id, position }, diff --git a/examples/sierpinski_triangle/src/main.rs b/examples/sierpinski_triangle/src/main.rs index d4d483f5d4..a4a89455b3 100644 --- a/examples/sierpinski_triangle/src/main.rs +++ b/examples/sierpinski_triangle/src/main.rs @@ -76,7 +76,7 @@ impl canvas::Program for SierpinskiGraph { fn update( &self, _state: &mut Self::State, - event: Event, + event: &Event, bounds: Rectangle, cursor: mouse::Cursor, ) -> Option> { diff --git a/examples/toast/src/main.rs b/examples/toast/src/main.rs index 2ae9bfe23e..dc314df85f 100644 --- a/examples/toast/src/main.rs +++ b/examples/toast/src/main.rs @@ -361,7 +361,7 @@ mod toast { fn update( &mut self, state: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -491,7 +491,7 @@ mod toast { fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -530,7 +530,7 @@ mod toast { child.as_widget_mut().update( state, - event.clone(), + event, layout, cursor, renderer, diff --git a/runtime/src/overlay/nested.rs b/runtime/src/overlay/nested.rs index 342ad70c69..38054d7b4a 100644 --- a/runtime/src/overlay/nested.rs +++ b/runtime/src/overlay/nested.rs @@ -160,7 +160,7 @@ where /// Processes a runtime [`Event`]. pub fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -170,7 +170,7 @@ where fn recurse( element: &mut overlay::Element<'_, Message, Theme, Renderer>, layout: Layout<'_>, - event: Event, + event: &Event, cursor: mouse::Cursor, renderer: &Renderer, clipboard: &mut dyn Clipboard, @@ -188,7 +188,7 @@ where recurse( &mut nested, nested_layout, - event.clone(), + event, cursor, renderer, clipboard, diff --git a/runtime/src/user_interface.rs b/runtime/src/user_interface.rs index 4bb7bba777..cb4416788f 100644 --- a/runtime/src/user_interface.rs +++ b/runtime/src/user_interface.rs @@ -210,7 +210,7 @@ where let mut layout = overlay.layout(renderer, bounds); let mut event_statuses = Vec::new(); - for event in events.iter().cloned() { + for event in events { let mut shell = Shell::new(messages); overlay.update( @@ -294,7 +294,6 @@ where let event_statuses = events .iter() - .cloned() .zip(overlay_statuses) .map(|(event, overlay_status)| { if matches!(overlay_status, event::Status::Captured) { diff --git a/widget/src/button.rs b/widget/src/button.rs index 11839d5eb2..0e24328f10 100644 --- a/widget/src/button.rs +++ b/widget/src/button.rs @@ -275,7 +275,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -285,7 +285,7 @@ where ) { self.content.as_widget_mut().update( &mut tree.children[0], - event.clone(), + event, layout.children().next().unwrap(), cursor, renderer, diff --git a/widget/src/canvas.rs b/widget/src/canvas.rs index d10771f005..046abddfbb 100644 --- a/widget/src/canvas.rs +++ b/widget/src/canvas.rs @@ -218,7 +218,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/canvas/program.rs b/widget/src/canvas/program.rs index c68b28308a..43446b6424 100644 --- a/widget/src/canvas/program.rs +++ b/widget/src/canvas/program.rs @@ -32,7 +32,7 @@ where fn update( &self, _state: &mut Self::State, - _event: Event, + _event: &Event, _bounds: Rectangle, _cursor: mouse::Cursor, ) -> Option> { @@ -82,7 +82,7 @@ where fn update( &self, state: &mut Self::State, - event: Event, + event: &Event, bounds: Rectangle, cursor: mouse::Cursor, ) -> Option> { diff --git a/widget/src/checkbox.rs b/widget/src/checkbox.rs index 663bfad16f..6ed3e080aa 100644 --- a/widget/src/checkbox.rs +++ b/widget/src/checkbox.rs @@ -305,7 +305,7 @@ where fn update( &mut self, _tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, _renderer: &Renderer, diff --git a/widget/src/column.rs b/widget/src/column.rs index c729cbdbae..7200690b82 100644 --- a/widget/src/column.rs +++ b/widget/src/column.rs @@ -260,7 +260,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -275,13 +275,7 @@ where .zip(layout.children()) { child.as_widget_mut().update( - state, - event.clone(), - layout, - cursor, - renderer, - clipboard, - shell, + state, event, layout, cursor, renderer, clipboard, shell, viewport, ); } diff --git a/widget/src/combo_box.rs b/widget/src/combo_box.rs index 057931551b..f71e4a6e40 100644 --- a/widget/src/combo_box.rs +++ b/widget/src/combo_box.rs @@ -512,7 +512,7 @@ where fn update( &mut self, tree: &mut widget::Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -540,7 +540,7 @@ where // Provide it to the widget self.text_input.update( &mut tree.children[0], - event.clone(), + event, layout, cursor, renderer, @@ -737,7 +737,7 @@ where let mut local_shell = Shell::new(&mut local_messages); self.text_input.update( &mut tree.children[0], - Event::Mouse(mouse::Event::ButtonPressed( + &Event::Mouse(mouse::Event::ButtonPressed( mouse::Button::Left, )), layout, diff --git a/widget/src/container.rs b/widget/src/container.rs index 852481f1d7..82dc314134 100644 --- a/widget/src/container.rs +++ b/widget/src/container.rs @@ -300,7 +300,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs index 199b8fc021..4cba197d06 100644 --- a/widget/src/helpers.rs +++ b/widget/src/helpers.rs @@ -633,7 +633,7 @@ where fn update( &mut self, state: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -836,7 +836,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -885,14 +885,8 @@ where let redraw_request = shell.redraw_request(); self.top.as_widget_mut().update( - top_tree, - event.clone(), - top_layout, - cursor, - renderer, - clipboard, - shell, - viewport, + top_tree, event, top_layout, cursor, renderer, clipboard, + shell, viewport, ); // Ignore redraw requests of invisible content @@ -907,7 +901,7 @@ where self.base.as_widget_mut().update( base_tree, - event.clone(), + event, base_layout, cursor, renderer, diff --git a/widget/src/image/viewer.rs b/widget/src/image/viewer.rs index 20a7955f3a..06652ff731 100644 --- a/widget/src/image/viewer.rs +++ b/widget/src/image/viewer.rs @@ -151,7 +151,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -167,7 +167,7 @@ where return; }; - match delta { + match *delta { mouse::ScrollDelta::Lines { y, .. } | mouse::ScrollDelta::Pixels { y, .. } => { let state = tree.state.downcast_mut::(); @@ -256,7 +256,7 @@ where .max(0.0) .round(); - let delta = position - origin; + let delta = *position - origin; let x = if bounds.width < scaled_size.width { (state.starting_offset.x - delta.x) diff --git a/widget/src/keyed/column.rs b/widget/src/keyed/column.rs index ab0b0bde5a..313b728ab8 100644 --- a/widget/src/keyed/column.rs +++ b/widget/src/keyed/column.rs @@ -300,7 +300,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -315,13 +315,7 @@ where .zip(layout.children()) { child.as_widget_mut().update( - state, - event.clone(), - layout, - cursor, - renderer, - clipboard, - shell, + state, event, layout, cursor, renderer, clipboard, shell, viewport, ); } diff --git a/widget/src/lazy.rs b/widget/src/lazy.rs index c6710e300a..6df026de34 100644 --- a/widget/src/lazy.rs +++ b/widget/src/lazy.rs @@ -198,7 +198,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -386,7 +386,7 @@ where fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/lazy/component.rs b/widget/src/lazy/component.rs index c93b7c4294..30822b7d52 100644 --- a/widget/src/lazy/component.rs +++ b/widget/src/lazy/component.rs @@ -313,7 +313,7 @@ where fn update( &mut self, tree: &mut Tree, - event: core::Event, + event: &core::Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -593,7 +593,7 @@ where fn update( &mut self, - event: core::Event, + event: &core::Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/lazy/responsive.rs b/widget/src/lazy/responsive.rs index 8129336e09..e7c937afc6 100644 --- a/widget/src/lazy/responsive.rs +++ b/widget/src/lazy/responsive.rs @@ -188,7 +188,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -416,7 +416,7 @@ where fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/mouse_area.rs b/widget/src/mouse_area.rs index 9ba3cff5cf..c1c3ba0fb6 100644 --- a/widget/src/mouse_area.rs +++ b/widget/src/mouse_area.rs @@ -218,7 +218,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -228,7 +228,7 @@ where ) { self.content.as_widget_mut().update( &mut tree.children[0], - event.clone(), + event, layout, cursor, renderer, @@ -326,7 +326,7 @@ where fn update( widget: &mut MouseArea<'_, Message, Theme, Renderer>, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, shell: &mut Shell<'_, Message>, @@ -425,7 +425,7 @@ fn update( } Event::Mouse(mouse::Event::WheelScrolled { delta }) => { if let Some(on_scroll) = widget.on_scroll.as_ref() { - shell.publish(on_scroll(delta)); + shell.publish(on_scroll(*delta)); shell.capture_event(); } } diff --git a/widget/src/overlay/menu.rs b/widget/src/overlay/menu.rs index 611476ce36..9d0539ffc6 100644 --- a/widget/src/overlay/menu.rs +++ b/widget/src/overlay/menu.rs @@ -263,7 +263,7 @@ where fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -388,7 +388,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/pane_grid.rs b/widget/src/pane_grid.rs index e972b983ad..3ae1dfc7e6 100644 --- a/widget/src/pane_grid.rs +++ b/widget/src/pane_grid.rs @@ -474,7 +474,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -509,15 +509,8 @@ where let is_picked = picked_pane == Some(pane); content.update( - tree, - event.clone(), - layout, - cursor, - renderer, - clipboard, - shell, - viewport, - is_picked, + tree, event, layout, cursor, renderer, clipboard, shell, + viewport, is_picked, ); } diff --git a/widget/src/pane_grid/content.rs b/widget/src/pane_grid/content.rs index be5e506609..4d63dd1843 100644 --- a/widget/src/pane_grid/content.rs +++ b/widget/src/pane_grid/content.rs @@ -242,7 +242,7 @@ where pub(crate) fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -256,7 +256,7 @@ where title_bar.update( &mut tree.children[1], - event.clone(), + event, children.next().unwrap(), cursor, renderer, diff --git a/widget/src/pane_grid/title_bar.rs b/widget/src/pane_grid/title_bar.rs index 4bd2c2f6da..611c3d6703 100644 --- a/widget/src/pane_grid/title_bar.rs +++ b/widget/src/pane_grid/title_bar.rs @@ -430,7 +430,7 @@ where pub(crate) fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -456,7 +456,7 @@ where compact.as_widget_mut().update( &mut tree.children[2], - event.clone(), + event, compact_layout, cursor, renderer, @@ -469,7 +469,7 @@ where controls.full.as_widget_mut().update( &mut tree.children[1], - event.clone(), + event, controls_layout, cursor, renderer, @@ -481,7 +481,7 @@ where } else { controls.full.as_widget_mut().update( &mut tree.children[1], - event.clone(), + event, controls_layout, cursor, renderer, diff --git a/widget/src/pick_list.rs b/widget/src/pick_list.rs index 6708e7cd14..b751fcc34e 100644 --- a/widget/src/pick_list.rs +++ b/widget/src/pick_list.rs @@ -430,7 +430,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, _renderer: &Renderer, @@ -489,13 +489,13 @@ where let options = self.options.borrow(); let selected = self.selected.as_ref().map(Borrow::borrow); - let next_option = if y < 0.0 { + let next_option = if *y < 0.0 { if let Some(selected) = selected { find_next(selected, options.iter()) } else { options.first() } - } else if y > 0.0 { + } else if *y > 0.0 { if let Some(selected) = selected { find_next(selected, options.iter().rev()) } else { @@ -513,7 +513,7 @@ where } } Event::Keyboard(keyboard::Event::ModifiersChanged(modifiers)) => { - state.keyboard_modifiers = modifiers; + state.keyboard_modifiers = *modifiers; } _ => {} }; diff --git a/widget/src/pin.rs b/widget/src/pin.rs index 7c1aca612f..afa2939840 100644 --- a/widget/src/pin.rs +++ b/widget/src/pin.rs @@ -177,7 +177,7 @@ where fn update( &mut self, tree: &mut widget::Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/pop.rs b/widget/src/pop.rs index 146cfb2b26..6e9df4be6a 100644 --- a/widget/src/pop.rs +++ b/widget/src/pop.rs @@ -108,7 +108,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/radio.rs b/widget/src/radio.rs index 15c983df68..0df4d7157d 100644 --- a/widget/src/radio.rs +++ b/widget/src/radio.rs @@ -326,7 +326,7 @@ where fn update( &mut self, _state: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, _renderer: &Renderer, diff --git a/widget/src/row.rs b/widget/src/row.rs index 3b605f0754..5ffeab498c 100644 --- a/widget/src/row.rs +++ b/widget/src/row.rs @@ -256,7 +256,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -271,13 +271,7 @@ where .zip(layout.children()) { child.as_widget_mut().update( - state, - event.clone(), - layout, - cursor, - renderer, - clipboard, - shell, + state, event, layout, cursor, renderer, clipboard, shell, viewport, ); } @@ -495,7 +489,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/scrollable.rs b/widget/src/scrollable.rs index a51a8625d8..8adf51362f 100644 --- a/widget/src/scrollable.rs +++ b/widget/src/scrollable.rs @@ -517,7 +517,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -736,7 +736,7 @@ where self.content.as_widget_mut().update( &mut tree.children[0], - event.clone(), + event, content, cursor, renderer, @@ -781,7 +781,7 @@ where modifiers, )) = event { - state.keyboard_modifiers = modifiers; + state.keyboard_modifiers = *modifiers; return; } @@ -792,7 +792,7 @@ where return; } - let delta = match delta { + let delta = match *delta { mouse::ScrollDelta::Lines { x, y } => { let is_shift_pressed = state.keyboard_modifiers.shift(); diff --git a/widget/src/shader.rs b/widget/src/shader.rs index 48c9632198..06254a1c1d 100644 --- a/widget/src/shader.rs +++ b/widget/src/shader.rs @@ -88,7 +88,7 @@ where fn update( &mut self, tree: &mut Tree, - event: crate::core::Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, _renderer: &Renderer, @@ -174,7 +174,7 @@ where fn update( &self, state: &mut Self::State, - event: Event, + event: &Event, bounds: Rectangle, cursor: mouse::Cursor, ) -> Option> { diff --git a/widget/src/shader/program.rs b/widget/src/shader/program.rs index 0fc110afeb..81ecc9b122 100644 --- a/widget/src/shader/program.rs +++ b/widget/src/shader/program.rs @@ -26,7 +26,7 @@ pub trait Program { fn update( &self, _state: &mut Self::State, - _event: shader::Event, + _event: &shader::Event, _bounds: Rectangle, _cursor: mouse::Cursor, ) -> Option> { diff --git a/widget/src/slider.rs b/widget/src/slider.rs index 5250085473..1908abc994 100644 --- a/widget/src/slider.rs +++ b/widget/src/slider.rs @@ -245,7 +245,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, _renderer: &Renderer, diff --git a/widget/src/stack.rs b/widget/src/stack.rs index d5cf1ecf3a..df9f616288 100644 --- a/widget/src/stack.rs +++ b/widget/src/stack.rs @@ -207,7 +207,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, mut cursor: mouse::Cursor, renderer: &Renderer, @@ -227,13 +227,7 @@ where .enumerate() { child.as_widget_mut().update( - state, - event.clone(), - layout, - cursor, - renderer, - clipboard, - shell, + state, event, layout, cursor, renderer, clipboard, shell, viewport, ); diff --git a/widget/src/text/rich.rs b/widget/src/text/rich.rs index 0b499ec6c0..a9e544d14e 100644 --- a/widget/src/text/rich.rs +++ b/widget/src/text/rich.rs @@ -358,7 +358,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, _renderer: &Renderer, diff --git a/widget/src/text_editor.rs b/widget/src/text_editor.rs index cfdf6b5ddc..e685256bff 100644 --- a/widget/src/text_editor.rs +++ b/widget/src/text_editor.rs @@ -651,7 +651,7 @@ where fn update( &mut self, tree: &mut widget::Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -686,17 +686,18 @@ where Event::Window(window::Event::RedrawRequested(now)) => { if let Some(focus) = &mut state.focus { if focus.is_window_focused { - focus.now = now; + focus.now = *now; let millis_until_redraw = Focus::CURSOR_BLINK_INTERVAL_MILLIS - - (now - focus.updated_at).as_millis() + - (focus.now - focus.updated_at).as_millis() % Focus::CURSOR_BLINK_INTERVAL_MILLIS; shell.request_redraw_at( - now + Duration::from_millis( - millis_until_redraw as u64, - ), + focus.now + + Duration::from_millis( + millis_until_redraw as u64, + ), ); } } @@ -1216,7 +1217,7 @@ enum Ime { impl Update { fn from_event( - event: Event, + event: &Event, state: &State, bounds: Rectangle, padding: Padding, @@ -1284,14 +1285,14 @@ impl Update { if state.focus.is_some() => { Some(Update::InputMethod(Ime::Preedit { - content, - selection, + content: content.clone(), + selection: selection.clone(), })) } input_method::Event::Commit(content) if state.focus.is_some() => { - Some(Update::InputMethod(Ime::Commit(content))) + Some(Update::InputMethod(Ime::Commit(content.clone()))) } _ => None, }, @@ -1310,9 +1311,9 @@ impl Update { }; let key_press = KeyPress { - key, - modifiers, - text, + key: key.clone(), + modifiers: *modifiers, + text: text.clone(), status, }; diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs index b22ee1ca81..215ecbd6a3 100644 --- a/widget/src/text_input.rs +++ b/widget/src/text_input.rs @@ -692,7 +692,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/themer.rs b/widget/src/themer.rs index 769cc4ca6a..4e583882af 100644 --- a/widget/src/themer.rs +++ b/widget/src/themer.rs @@ -113,7 +113,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, @@ -220,7 +220,7 @@ where fn update( &mut self, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/toggler.rs b/widget/src/toggler.rs index 56c2be1fcd..b711432e10 100644 --- a/widget/src/toggler.rs +++ b/widget/src/toggler.rs @@ -309,7 +309,7 @@ where fn update( &mut self, _state: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, _renderer: &Renderer, diff --git a/widget/src/tooltip.rs b/widget/src/tooltip.rs index a0ffe39206..5bebeeace2 100644 --- a/widget/src/tooltip.rs +++ b/widget/src/tooltip.rs @@ -192,7 +192,7 @@ where fn update( &mut self, tree: &mut widget::Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, renderer: &Renderer, diff --git a/widget/src/vertical_slider.rs b/widget/src/vertical_slider.rs index 2ed9419ab8..6f878fde37 100644 --- a/widget/src/vertical_slider.rs +++ b/widget/src/vertical_slider.rs @@ -249,7 +249,7 @@ where fn update( &mut self, tree: &mut Tree, - event: Event, + event: &Event, layout: Layout<'_>, cursor: mouse::Cursor, _renderer: &Renderer, @@ -379,7 +379,7 @@ where if state.keyboard_modifiers.control() => { if cursor.is_over(layout.bounds()) { - let delta = match delta { + let delta = match *delta { mouse::ScrollDelta::Lines { x: _, y } => y, mouse::ScrollDelta::Pixels { x: _, y } => y, }; @@ -411,7 +411,7 @@ where } } Event::Keyboard(keyboard::Event::ModifiersChanged(modifiers)) => { - state.keyboard_modifiers = modifiers; + state.keyboard_modifiers = *modifiers; } _ => {} }