diff options
author | 2021-11-29 16:22:01 +0700 | |
---|---|---|
committer | 2021-11-29 16:22:01 +0700 | |
commit | bbd9355450bc2df3a2c0e37cc900ba00b26255af (patch) | |
tree | a6cf758c934638e3dd9586781dfb62e1cf028572 /native/src/widget/text_input.rs | |
parent | f7792d89d64c39cdde9da030bec80fb6f461a0e3 (diff) | |
download | iced-bbd9355450bc2df3a2c0e37cc900ba00b26255af.tar.gz iced-bbd9355450bc2df3a2c0e37cc900ba00b26255af.tar.bz2 iced-bbd9355450bc2df3a2c0e37cc900ba00b26255af.zip |
Introduce `Shell` type in `iced_native`
Widgets now can invalidate the current layout of the application on demand.
Diffstat (limited to 'native/src/widget/text_input.rs')
-rw-r--r-- | native/src/widget/text_input.rs | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs index 40c6c573..5e1726db 100644 --- a/native/src/widget/text_input.rs +++ b/native/src/widget/text_input.rs @@ -21,7 +21,7 @@ use crate::text::{self, Text}; use crate::touch; use crate::{ Clipboard, Color, Element, Hasher, Layout, Length, Padding, Point, - Rectangle, Size, Vector, Widget, + Rectangle, Shell, Size, Vector, Widget, }; use std::u32; @@ -384,7 +384,7 @@ where cursor_position: Point, renderer: &Renderer, clipboard: &mut dyn Clipboard, - messages: &mut Vec<Message>, + shell: &mut Shell<'_, Message>, ) -> event::Status { match event { Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) @@ -509,7 +509,7 @@ where editor.insert(c); let message = (self.on_change)(editor.contents()); - messages.push(message); + shell.publish(message); return event::Status::Captured; } @@ -521,7 +521,7 @@ where match key_code { keyboard::KeyCode::Enter => { if let Some(on_submit) = self.on_submit.clone() { - messages.push(on_submit); + shell.publish(on_submit); } } keyboard::KeyCode::Backspace => { @@ -551,7 +551,7 @@ where editor.backspace(); let message = (self.on_change)(editor.contents()); - messages.push(message); + shell.publish(message); } keyboard::KeyCode::Delete => { if platform::is_jump_modifier_pressed(modifiers) @@ -582,7 +582,7 @@ where editor.delete(); let message = (self.on_change)(editor.contents()); - messages.push(message); + shell.publish(message); } keyboard::KeyCode::Left => { if platform::is_jump_modifier_pressed(modifiers) @@ -674,7 +674,7 @@ where editor.delete(); let message = (self.on_change)(editor.contents()); - messages.push(message); + shell.publish(message); } keyboard::KeyCode::V => { if self.state.keyboard_modifiers.command() { @@ -700,7 +700,7 @@ where editor.paste(content.clone()); let message = (self.on_change)(editor.contents()); - messages.push(message); + shell.publish(message); self.state.is_pasting = Some(content); } else { |