summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
Diffstat (limited to 'native')
-rw-r--r--native/src/widget/checkbox.rs6
-rw-r--r--native/src/widget/container.rs2
-rw-r--r--native/src/widget/text_input.rs8
3 files changed, 14 insertions, 2 deletions
diff --git a/native/src/widget/checkbox.rs b/native/src/widget/checkbox.rs
index a7040e02..3f0f8dda 100644
--- a/native/src/widget/checkbox.rs
+++ b/native/src/widget/checkbox.rs
@@ -2,7 +2,7 @@
use std::hash::Hash;
use crate::input::{mouse, ButtonState};
-use crate::{layout, Element, Event, Hasher, Layout, Point, Widget};
+use crate::{layout, Element, Event, Hasher, Layout, Length, Point, Widget};
pub use iced_core::Checkbox;
@@ -10,6 +10,10 @@ impl<Message, Renderer> Widget<Message, Renderer> for Checkbox<Message>
where
Renderer: self::Renderer,
{
+ fn width(&self) -> Length {
+ Length::Fill
+ }
+
fn layout(
&self,
renderer: &Renderer,
diff --git a/native/src/widget/container.rs b/native/src/widget/container.rs
index c616db2a..fd7a5ca5 100644
--- a/native/src/widget/container.rs
+++ b/native/src/widget/container.rs
@@ -27,7 +27,7 @@ where
.width(self.width)
.height(self.height);
- let mut content = self.content.layout(renderer, &limits);
+ let mut content = self.content.layout(renderer, &limits.loose());
let size = limits.resolve(content.size());
content.align(self.horizontal_alignment, self.vertical_alignment, size);
diff --git a/native/src/widget/text_input.rs b/native/src/widget/text_input.rs
index 7e81e257..35e10000 100644
--- a/native/src/widget/text_input.rs
+++ b/native/src/widget/text_input.rs
@@ -11,6 +11,10 @@ where
Renderer: self::Renderer,
Message: Clone + std::fmt::Debug,
{
+ fn width(&self) -> Length {
+ self.width
+ }
+
fn layout(
&self,
renderer: &Renderer,
@@ -46,6 +50,10 @@ where
}) => {
self.state.is_focused =
layout.bounds().contains(cursor_position);
+
+ if self.state.cursor_position(&self.value) == 0 {
+ self.state.move_cursor_to_end(&self.value);
+ }
}
Event::Keyboard(keyboard::Event::CharacterReceived(c))
if self.state.is_focused && !c.is_control() =>