fix disappearing phrase list

This commit is contained in:
🪞👃🪞 2024-10-06 07:47:56 +03:00
parent 39edaea47c
commit 5667416d89
3 changed files with 28 additions and 24 deletions

View file

@ -599,7 +599,7 @@ impl<E: Engine, T: Widget<Engine = E>> Widget for Shrink<E::Unit, T> {
],
Self::Y(h, _) => [
to.w(),
if to.h() > h { to.h() - h } else { 0.into() }
if to.h() > h { to.h() - h } else { 0.into() }
],
Self::XY(w, h, _) => [
if to.w() > w { to.w() - w } else { 0.into() },
@ -651,11 +651,11 @@ impl<E: Engine, T: Widget<Engine = E>> Widget for Inset<E::Unit, T> {
fn render (&self, to: &mut E::Output) -> Usually<()> {
match *self {
Self::X(x, ref inner) =>
Push::X(x, Shrink::X(x, inner as &dyn Widget<Engine = E>)),
(inner as &dyn Widget<Engine = E>).shrink_x(x).push_x(x),
Self::Y(y, ref inner) =>
Push::Y(y, Shrink::Y(y, inner as &dyn Widget<Engine = E>)),
(inner as &dyn Widget<Engine = E>).shrink_y(y).push_y(y),
Self::XY(x, y, ref inner) =>
Push::XY(x, y, Shrink::XY(x, y, inner as &dyn Widget<Engine = E>)),
(inner as &dyn Widget<Engine = E>).shrink_xy(x, y).push_xy(x, y)
}.render(to)
}
}
@ -664,19 +664,22 @@ impl<E: Engine, T: Widget<Engine = E>> Widget for Outset<E::Unit, T> {
type Engine = E;
fn layout (&self, to: E::Size) -> Perhaps<E::Size> {
match *self {
Self::X(x, ref inner) => Grow::X(x + x, inner as &dyn Widget<Engine = E>),
Self::Y(y, ref inner) => Grow::Y(y + y, inner as &dyn Widget<Engine = E>),
Self::XY(x, y, ref inner) => Grow::XY(x + x, y + y, inner as &dyn Widget<Engine = E>),
Self::X(x, ref inner) =>
(inner as &dyn Widget<Engine = E>).grow_x(x + x),
Self::Y(y, ref inner) =>
(inner as &dyn Widget<Engine = E>).grow_y(y + y),
Self::XY(x, y, ref inner) =>
(inner as &dyn Widget<Engine = E>).grow_xy(x + x, y + y),
}.layout(to)
}
fn render (&self, to: &mut E::Output) -> Usually<()> {
match *self {
Self::X(x, ref inner) =>
Push::X(x, inner as &dyn Widget<Engine = E>),
(inner as &dyn Widget<Engine = E>).push_x(x),
Self::Y(y, ref inner) =>
Push::Y(y, inner as &dyn Widget<Engine = E>),
(inner as &dyn Widget<Engine = E>).push_y(y),
Self::XY(x, y, ref inner) =>
Push::XY(x, y, inner as &dyn Widget<Engine = E>),
(inner as &dyn Widget<Engine = E>).push_xy(x, y),
}.render(to)
}
}