Take Event by reference in Widget::update

This commit is contained in:
Héctor Ramón Jiménez 2025-02-03 03:22:10 +01:00
parent 1b01d6718b
commit afef368d8a
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
49 changed files with 111 additions and 155 deletions

View file

@ -311,7 +311,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -447,7 +447,7 @@ where
fn update( fn update(
&mut self, &mut self,
state: &mut Tree, state: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -58,7 +58,7 @@ where
/// By default, it does nothing. /// By default, it does nothing.
fn update( fn update(
&mut self, &mut self,
_event: Event, _event: &Event,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,

View file

@ -51,7 +51,7 @@ where
/// Processes a runtime [`Event`]. /// Processes a runtime [`Event`].
pub fn update( pub fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -150,7 +150,7 @@ where
fn update( fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -74,7 +74,7 @@ where
fn update( fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -82,14 +82,7 @@ where
shell: &mut Shell<'_, Message>, shell: &mut Shell<'_, Message>,
) { ) {
for (child, layout) in self.children.iter_mut().zip(layout.children()) { for (child, layout) in self.children.iter_mut().zip(layout.children()) {
child.update( child.update(event, layout, cursor, renderer, clipboard, shell);
event.clone(),
layout,
cursor,
renderer,
clipboard,
shell,
);
} }
} }

View file

@ -114,7 +114,7 @@ where
fn update( fn update(
&mut self, &mut self,
_state: &mut Tree, _state: &mut Tree,
_event: Event, _event: &Event,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,

View file

@ -93,7 +93,7 @@ mod bezier {
fn update( fn update(
&self, &self,
state: &mut Self::State, state: &mut Self::State,
event: Event, event: &Event,
bounds: Rectangle, bounds: Rectangle,
cursor: mouse::Cursor, cursor: mouse::Cursor,
) -> Option<canvas::Action<Curve>> { ) -> Option<canvas::Action<Curve>> {

View file

@ -380,7 +380,7 @@ mod grid {
fn update( fn update(
&self, &self,
interaction: &mut Interaction, interaction: &mut Interaction,
event: Event, event: &Event,
bounds: Rectangle, bounds: Rectangle,
cursor: mouse::Cursor, cursor: mouse::Cursor,
) -> Option<canvas::Action<Message>> { ) -> Option<canvas::Action<Message>> {
@ -471,7 +471,7 @@ mod grid {
_ => action.and_capture(), _ => action.and_capture(),
}) })
} }
mouse::Event::WheelScrolled { delta } => match delta { mouse::Event::WheelScrolled { delta } => match *delta {
mouse::ScrollDelta::Lines { y, .. } mouse::ScrollDelta::Lines { y, .. }
| mouse::ScrollDelta::Pixels { y, .. } => { | mouse::ScrollDelta::Pixels { y, .. } => {
if y < 0.0 && self.scaling > Self::MIN_SCALING if y < 0.0 && self.scaling > Self::MIN_SCALING

View file

@ -264,7 +264,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,
@ -278,7 +278,7 @@ where
state.animation = state.animation.timed_transition( state.animation = state.animation.timed_transition(
self.cycle_duration, self.cycle_duration,
self.rotation_duration, self.rotation_duration,
now, *now,
); );
state.cache.clear(); state.cache.clear();

View file

@ -178,7 +178,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
_layout: Layout<'_>, _layout: Layout<'_>,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,
@ -189,7 +189,7 @@ where
let state = tree.state.downcast_mut::<State>(); let state = tree.state.downcast_mut::<State>();
if let Event::Window(window::Event::RedrawRequested(now)) = event { 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(); shell.request_redraw();
} }

View file

@ -55,11 +55,11 @@ impl canvas::Program<Message> for Multitouch {
fn update( fn update(
&self, &self,
_state: &mut Self::State, _state: &mut Self::State,
event: Event, event: &Event,
_bounds: Rectangle, _bounds: Rectangle,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
) -> Option<canvas::Action<Message>> { ) -> Option<canvas::Action<Message>> {
let message = match event { let message = match event.clone() {
Event::Touch( Event::Touch(
touch::Event::FingerPressed { id, position } touch::Event::FingerPressed { id, position }
| touch::Event::FingerMoved { id, position }, | touch::Event::FingerMoved { id, position },

View file

@ -76,7 +76,7 @@ impl canvas::Program<Message> for SierpinskiGraph {
fn update( fn update(
&self, &self,
_state: &mut Self::State, _state: &mut Self::State,
event: Event, event: &Event,
bounds: Rectangle, bounds: Rectangle,
cursor: mouse::Cursor, cursor: mouse::Cursor,
) -> Option<canvas::Action<Message>> { ) -> Option<canvas::Action<Message>> {

View file

@ -361,7 +361,7 @@ mod toast {
fn update( fn update(
&mut self, &mut self,
state: &mut Tree, state: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -491,7 +491,7 @@ mod toast {
fn update( fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -530,7 +530,7 @@ mod toast {
child.as_widget_mut().update( child.as_widget_mut().update(
state, state,
event.clone(), event,
layout, layout,
cursor, cursor,
renderer, renderer,

View file

@ -160,7 +160,7 @@ where
/// Processes a runtime [`Event`]. /// Processes a runtime [`Event`].
pub fn update( pub fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -170,7 +170,7 @@ where
fn recurse<Message, Theme, Renderer>( fn recurse<Message, Theme, Renderer>(
element: &mut overlay::Element<'_, Message, Theme, Renderer>, element: &mut overlay::Element<'_, Message, Theme, Renderer>,
layout: Layout<'_>, layout: Layout<'_>,
event: Event, event: &Event,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
clipboard: &mut dyn Clipboard, clipboard: &mut dyn Clipboard,
@ -188,7 +188,7 @@ where
recurse( recurse(
&mut nested, &mut nested,
nested_layout, nested_layout,
event.clone(), event,
cursor, cursor,
renderer, renderer,
clipboard, clipboard,

View file

@ -210,7 +210,7 @@ where
let mut layout = overlay.layout(renderer, bounds); let mut layout = overlay.layout(renderer, bounds);
let mut event_statuses = Vec::new(); let mut event_statuses = Vec::new();
for event in events.iter().cloned() { for event in events {
let mut shell = Shell::new(messages); let mut shell = Shell::new(messages);
overlay.update( overlay.update(
@ -294,7 +294,6 @@ where
let event_statuses = events let event_statuses = events
.iter() .iter()
.cloned()
.zip(overlay_statuses) .zip(overlay_statuses)
.map(|(event, overlay_status)| { .map(|(event, overlay_status)| {
if matches!(overlay_status, event::Status::Captured) { if matches!(overlay_status, event::Status::Captured) {

View file

@ -275,7 +275,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -285,7 +285,7 @@ where
) { ) {
self.content.as_widget_mut().update( self.content.as_widget_mut().update(
&mut tree.children[0], &mut tree.children[0],
event.clone(), event,
layout.children().next().unwrap(), layout.children().next().unwrap(),
cursor, cursor,
renderer, renderer,

View file

@ -218,7 +218,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -32,7 +32,7 @@ where
fn update( fn update(
&self, &self,
_state: &mut Self::State, _state: &mut Self::State,
_event: Event, _event: &Event,
_bounds: Rectangle, _bounds: Rectangle,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
) -> Option<Action<Message>> { ) -> Option<Action<Message>> {
@ -82,7 +82,7 @@ where
fn update( fn update(
&self, &self,
state: &mut Self::State, state: &mut Self::State,
event: Event, event: &Event,
bounds: Rectangle, bounds: Rectangle,
cursor: mouse::Cursor, cursor: mouse::Cursor,
) -> Option<Action<Message>> { ) -> Option<Action<Message>> {

View file

@ -305,7 +305,7 @@ where
fn update( fn update(
&mut self, &mut self,
_tree: &mut Tree, _tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,

View file

@ -260,7 +260,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -275,13 +275,7 @@ where
.zip(layout.children()) .zip(layout.children())
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, state, event, layout, cursor, renderer, clipboard, shell,
event.clone(),
layout,
cursor,
renderer,
clipboard,
shell,
viewport, viewport,
); );
} }

View file

@ -512,7 +512,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut widget::Tree, tree: &mut widget::Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -540,7 +540,7 @@ where
// Provide it to the widget // Provide it to the widget
self.text_input.update( self.text_input.update(
&mut tree.children[0], &mut tree.children[0],
event.clone(), event,
layout, layout,
cursor, cursor,
renderer, renderer,
@ -737,7 +737,7 @@ where
let mut local_shell = Shell::new(&mut local_messages); let mut local_shell = Shell::new(&mut local_messages);
self.text_input.update( self.text_input.update(
&mut tree.children[0], &mut tree.children[0],
Event::Mouse(mouse::Event::ButtonPressed( &Event::Mouse(mouse::Event::ButtonPressed(
mouse::Button::Left, mouse::Button::Left,
)), )),
layout, layout,

View file

@ -300,7 +300,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -633,7 +633,7 @@ where
fn update( fn update(
&mut self, &mut self,
state: &mut Tree, state: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -836,7 +836,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -885,14 +885,8 @@ where
let redraw_request = shell.redraw_request(); let redraw_request = shell.redraw_request();
self.top.as_widget_mut().update( self.top.as_widget_mut().update(
top_tree, top_tree, event, top_layout, cursor, renderer, clipboard,
event.clone(), shell, viewport,
top_layout,
cursor,
renderer,
clipboard,
shell,
viewport,
); );
// Ignore redraw requests of invisible content // Ignore redraw requests of invisible content
@ -907,7 +901,7 @@ where
self.base.as_widget_mut().update( self.base.as_widget_mut().update(
base_tree, base_tree,
event.clone(), event,
base_layout, base_layout,
cursor, cursor,
renderer, renderer,

View file

@ -151,7 +151,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -167,7 +167,7 @@ where
return; return;
}; };
match delta { match *delta {
mouse::ScrollDelta::Lines { y, .. } mouse::ScrollDelta::Lines { y, .. }
| mouse::ScrollDelta::Pixels { y, .. } => { | mouse::ScrollDelta::Pixels { y, .. } => {
let state = tree.state.downcast_mut::<State>(); let state = tree.state.downcast_mut::<State>();
@ -256,7 +256,7 @@ where
.max(0.0) .max(0.0)
.round(); .round();
let delta = position - origin; let delta = *position - origin;
let x = if bounds.width < scaled_size.width { let x = if bounds.width < scaled_size.width {
(state.starting_offset.x - delta.x) (state.starting_offset.x - delta.x)

View file

@ -300,7 +300,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -315,13 +315,7 @@ where
.zip(layout.children()) .zip(layout.children())
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, state, event, layout, cursor, renderer, clipboard, shell,
event.clone(),
layout,
cursor,
renderer,
clipboard,
shell,
viewport, viewport,
); );
} }

View file

@ -198,7 +198,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -386,7 +386,7 @@ where
fn update( fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -313,7 +313,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: core::Event, event: &core::Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -593,7 +593,7 @@ where
fn update( fn update(
&mut self, &mut self,
event: core::Event, event: &core::Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -188,7 +188,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -416,7 +416,7 @@ where
fn update( fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -218,7 +218,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -228,7 +228,7 @@ where
) { ) {
self.content.as_widget_mut().update( self.content.as_widget_mut().update(
&mut tree.children[0], &mut tree.children[0],
event.clone(), event,
layout, layout,
cursor, cursor,
renderer, renderer,
@ -326,7 +326,7 @@ where
fn update<Message: Clone, Theme, Renderer>( fn update<Message: Clone, Theme, Renderer>(
widget: &mut MouseArea<'_, Message, Theme, Renderer>, widget: &mut MouseArea<'_, Message, Theme, Renderer>,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
shell: &mut Shell<'_, Message>, shell: &mut Shell<'_, Message>,
@ -425,7 +425,7 @@ fn update<Message: Clone, Theme, Renderer>(
} }
Event::Mouse(mouse::Event::WheelScrolled { delta }) => { Event::Mouse(mouse::Event::WheelScrolled { delta }) => {
if let Some(on_scroll) = widget.on_scroll.as_ref() { if let Some(on_scroll) = widget.on_scroll.as_ref() {
shell.publish(on_scroll(delta)); shell.publish(on_scroll(*delta));
shell.capture_event(); shell.capture_event();
} }
} }

View file

@ -263,7 +263,7 @@ where
fn update( fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -388,7 +388,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -474,7 +474,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -509,15 +509,8 @@ where
let is_picked = picked_pane == Some(pane); let is_picked = picked_pane == Some(pane);
content.update( content.update(
tree, tree, event, layout, cursor, renderer, clipboard, shell,
event.clone(), viewport, is_picked,
layout,
cursor,
renderer,
clipboard,
shell,
viewport,
is_picked,
); );
} }

View file

@ -242,7 +242,7 @@ where
pub(crate) fn update( pub(crate) fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -256,7 +256,7 @@ where
title_bar.update( title_bar.update(
&mut tree.children[1], &mut tree.children[1],
event.clone(), event,
children.next().unwrap(), children.next().unwrap(),
cursor, cursor,
renderer, renderer,

View file

@ -430,7 +430,7 @@ where
pub(crate) fn update( pub(crate) fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -456,7 +456,7 @@ where
compact.as_widget_mut().update( compact.as_widget_mut().update(
&mut tree.children[2], &mut tree.children[2],
event.clone(), event,
compact_layout, compact_layout,
cursor, cursor,
renderer, renderer,
@ -469,7 +469,7 @@ where
controls.full.as_widget_mut().update( controls.full.as_widget_mut().update(
&mut tree.children[1], &mut tree.children[1],
event.clone(), event,
controls_layout, controls_layout,
cursor, cursor,
renderer, renderer,
@ -481,7 +481,7 @@ where
} else { } else {
controls.full.as_widget_mut().update( controls.full.as_widget_mut().update(
&mut tree.children[1], &mut tree.children[1],
event.clone(), event,
controls_layout, controls_layout,
cursor, cursor,
renderer, renderer,

View file

@ -430,7 +430,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,
@ -489,13 +489,13 @@ where
let options = self.options.borrow(); let options = self.options.borrow();
let selected = self.selected.as_ref().map(Borrow::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 { if let Some(selected) = selected {
find_next(selected, options.iter()) find_next(selected, options.iter())
} else { } else {
options.first() options.first()
} }
} else if y > 0.0 { } else if *y > 0.0 {
if let Some(selected) = selected { if let Some(selected) = selected {
find_next(selected, options.iter().rev()) find_next(selected, options.iter().rev())
} else { } else {
@ -513,7 +513,7 @@ where
} }
} }
Event::Keyboard(keyboard::Event::ModifiersChanged(modifiers)) => { Event::Keyboard(keyboard::Event::ModifiersChanged(modifiers)) => {
state.keyboard_modifiers = modifiers; state.keyboard_modifiers = *modifiers;
} }
_ => {} _ => {}
}; };

View file

@ -177,7 +177,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut widget::Tree, tree: &mut widget::Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -108,7 +108,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -326,7 +326,7 @@ where
fn update( fn update(
&mut self, &mut self,
_state: &mut Tree, _state: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,

View file

@ -256,7 +256,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -271,13 +271,7 @@ where
.zip(layout.children()) .zip(layout.children())
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, state, event, layout, cursor, renderer, clipboard, shell,
event.clone(),
layout,
cursor,
renderer,
clipboard,
shell,
viewport, viewport,
); );
} }
@ -495,7 +489,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -517,7 +517,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -736,7 +736,7 @@ where
self.content.as_widget_mut().update( self.content.as_widget_mut().update(
&mut tree.children[0], &mut tree.children[0],
event.clone(), event,
content, content,
cursor, cursor,
renderer, renderer,
@ -781,7 +781,7 @@ where
modifiers, modifiers,
)) = event )) = event
{ {
state.keyboard_modifiers = modifiers; state.keyboard_modifiers = *modifiers;
return; return;
} }
@ -792,7 +792,7 @@ where
return; return;
} }
let delta = match delta { let delta = match *delta {
mouse::ScrollDelta::Lines { x, y } => { mouse::ScrollDelta::Lines { x, y } => {
let is_shift_pressed = let is_shift_pressed =
state.keyboard_modifiers.shift(); state.keyboard_modifiers.shift();

View file

@ -88,7 +88,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: crate::core::Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,
@ -174,7 +174,7 @@ where
fn update( fn update(
&self, &self,
state: &mut Self::State, state: &mut Self::State,
event: Event, event: &Event,
bounds: Rectangle, bounds: Rectangle,
cursor: mouse::Cursor, cursor: mouse::Cursor,
) -> Option<Action<Message>> { ) -> Option<Action<Message>> {

View file

@ -26,7 +26,7 @@ pub trait Program<Message> {
fn update( fn update(
&self, &self,
_state: &mut Self::State, _state: &mut Self::State,
_event: shader::Event, _event: &shader::Event,
_bounds: Rectangle, _bounds: Rectangle,
_cursor: mouse::Cursor, _cursor: mouse::Cursor,
) -> Option<Action<Message>> { ) -> Option<Action<Message>> {

View file

@ -245,7 +245,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,

View file

@ -207,7 +207,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
mut cursor: mouse::Cursor, mut cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -227,13 +227,7 @@ where
.enumerate() .enumerate()
{ {
child.as_widget_mut().update( child.as_widget_mut().update(
state, state, event, layout, cursor, renderer, clipboard, shell,
event.clone(),
layout,
cursor,
renderer,
clipboard,
shell,
viewport, viewport,
); );

View file

@ -358,7 +358,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,

View file

@ -651,7 +651,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut widget::Tree, tree: &mut widget::Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -686,17 +686,18 @@ where
Event::Window(window::Event::RedrawRequested(now)) => { Event::Window(window::Event::RedrawRequested(now)) => {
if let Some(focus) = &mut state.focus { if let Some(focus) = &mut state.focus {
if focus.is_window_focused { if focus.is_window_focused {
focus.now = now; focus.now = *now;
let millis_until_redraw = let millis_until_redraw =
Focus::CURSOR_BLINK_INTERVAL_MILLIS Focus::CURSOR_BLINK_INTERVAL_MILLIS
- (now - focus.updated_at).as_millis() - (focus.now - focus.updated_at).as_millis()
% Focus::CURSOR_BLINK_INTERVAL_MILLIS; % Focus::CURSOR_BLINK_INTERVAL_MILLIS;
shell.request_redraw_at( shell.request_redraw_at(
now + Duration::from_millis( focus.now
millis_until_redraw as u64, + Duration::from_millis(
), millis_until_redraw as u64,
),
); );
} }
} }
@ -1216,7 +1217,7 @@ enum Ime {
impl<Message> Update<Message> { impl<Message> Update<Message> {
fn from_event<H: Highlighter>( fn from_event<H: Highlighter>(
event: Event, event: &Event,
state: &State<H>, state: &State<H>,
bounds: Rectangle, bounds: Rectangle,
padding: Padding, padding: Padding,
@ -1284,14 +1285,14 @@ impl<Message> Update<Message> {
if state.focus.is_some() => if state.focus.is_some() =>
{ {
Some(Update::InputMethod(Ime::Preedit { Some(Update::InputMethod(Ime::Preedit {
content, content: content.clone(),
selection, selection: selection.clone(),
})) }))
} }
input_method::Event::Commit(content) input_method::Event::Commit(content)
if state.focus.is_some() => if state.focus.is_some() =>
{ {
Some(Update::InputMethod(Ime::Commit(content))) Some(Update::InputMethod(Ime::Commit(content.clone())))
} }
_ => None, _ => None,
}, },
@ -1310,9 +1311,9 @@ impl<Message> Update<Message> {
}; };
let key_press = KeyPress { let key_press = KeyPress {
key, key: key.clone(),
modifiers, modifiers: *modifiers,
text, text: text.clone(),
status, status,
}; };

View file

@ -692,7 +692,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -113,7 +113,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,
@ -220,7 +220,7 @@ where
fn update( fn update(
&mut self, &mut self,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -309,7 +309,7 @@ where
fn update( fn update(
&mut self, &mut self,
_state: &mut Tree, _state: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,

View file

@ -192,7 +192,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut widget::Tree, tree: &mut widget::Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
renderer: &Renderer, renderer: &Renderer,

View file

@ -249,7 +249,7 @@ where
fn update( fn update(
&mut self, &mut self,
tree: &mut Tree, tree: &mut Tree,
event: Event, event: &Event,
layout: Layout<'_>, layout: Layout<'_>,
cursor: mouse::Cursor, cursor: mouse::Cursor,
_renderer: &Renderer, _renderer: &Renderer,
@ -379,7 +379,7 @@ where
if state.keyboard_modifiers.control() => if state.keyboard_modifiers.control() =>
{ {
if cursor.is_over(layout.bounds()) { if cursor.is_over(layout.bounds()) {
let delta = match delta { let delta = match *delta {
mouse::ScrollDelta::Lines { x: _, y } => y, mouse::ScrollDelta::Lines { x: _, y } => y,
mouse::ScrollDelta::Pixels { x: _, y } => y, mouse::ScrollDelta::Pixels { x: _, y } => y,
}; };
@ -411,7 +411,7 @@ where
} }
} }
Event::Keyboard(keyboard::Event::ModifiersChanged(modifiers)) => { Event::Keyboard(keyboard::Event::ModifiersChanged(modifiers)) => {
state.keyboard_modifiers = modifiers; state.keyboard_modifiers = *modifiers;
} }
_ => {} _ => {}
} }