summaryrefslogtreecommitdiffstats
path: root/native/src/widget/text_input.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-11-29 16:22:01 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-11-29 16:22:01 +0700
commitbbd9355450bc2df3a2c0e37cc900ba00b26255af (patch)
treea6cf758c934638e3dd9586781dfb62e1cf028572 /native/src/widget/text_input.rs
parentf7792d89d64c39cdde9da030bec80fb6f461a0e3 (diff)
downloadiced-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.rs16
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 {