diff options
Diffstat (limited to '')
| -rw-r--r-- | native/src/widget/checkbox.rs | 6 | ||||
| -rw-r--r-- | native/src/widget/container.rs | 2 | ||||
| -rw-r--r-- | native/src/widget/text_input.rs | 8 | 
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() =>  | 
