Adapt scrollable sizing strategy to contents

This commit is contained in:
Héctor Ramón Jiménez 2024-07-18 13:22:53 +02:00
parent 904704d7c1
commit aa62fa2ce9
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
2 changed files with 17 additions and 12 deletions

View file

@ -60,13 +60,10 @@ impl Markdown {
let preview = markdown(&self.items); let preview = markdown(&self.items);
row![ row![editor, scrollable(preview).spacing(10).height(Fill)]
editor, .spacing(10)
scrollable(preview).spacing(10).width(Fill).height(Fill) .padding(10)
] .into()
.spacing(10)
.padding(10)
.into()
} }
fn theme(&self) -> Theme { fn theme(&self) -> Theme {

View file

@ -62,19 +62,27 @@ where
.validate() .validate()
} }
fn validate(self) -> Self { fn validate(mut self) -> Self {
let size_hint = self.content.as_widget().size_hint();
debug_assert!( debug_assert!(
self.direction.vertical().is_none() self.direction.vertical().is_none() || !size_hint.height.is_fill(),
|| !self.content.as_widget().size_hint().height.is_fill(),
"scrollable content must not fill its vertical scrolling axis" "scrollable content must not fill its vertical scrolling axis"
); );
debug_assert!( debug_assert!(
self.direction.horizontal().is_none() self.direction.horizontal().is_none() || !size_hint.width.is_fill(),
|| !self.content.as_widget().size_hint().width.is_fill(),
"scrollable content must not fill its horizontal scrolling axis" "scrollable content must not fill its horizontal scrolling axis"
); );
if self.direction.horizontal().is_none() {
self.width = self.width.enclose(size_hint.width);
}
if self.direction.vertical().is_none() {
self.height = self.height.enclose(size_hint.height);
}
self self
} }