diff --git a/crates/bevy_ui/src/layout/convert.rs b/crates/bevy_ui/src/layout/convert.rs index 2cc7c3b32c0f3..8a4a1ae95e449 100644 --- a/crates/bevy_ui/src/layout/convert.rs +++ b/crates/bevy_ui/src/layout/convert.rs @@ -66,7 +66,7 @@ impl UiRect { pub fn from_style( context: &LayoutContext, style: &Style, - ignore_padding_and_border: bool, + ignore_border: bool, ) -> taffy::style::Style { taffy::style::Style { display: style.display.into(), @@ -93,18 +93,12 @@ pub fn from_style( margin: style .margin .map_to_taffy_rect(|m| m.into_length_percentage_auto(context)), - // Ignore padding for leaf nodes as it isn't implemented in the rendering engine. - // TODO: Implement rendering of padding for leaf nodes - padding: if ignore_padding_and_border { - taffy::Rect::zero() - } else { - style - .padding - .map_to_taffy_rect(|m| m.into_length_percentage(context)) - }, + padding: style + .padding + .map_to_taffy_rect(|m| m.into_length_percentage(context)), // Ignore border for leaf nodes as it isn't implemented in the rendering engine. // TODO: Implement rendering of border for leaf nodes - border: if ignore_padding_and_border { + border: if ignore_border { taffy::Rect::zero() } else { style diff --git a/crates/bevy_ui/src/layout/mod.rs b/crates/bevy_ui/src/layout/mod.rs index f74ef601319cb..803221af3a5bc 100644 --- a/crates/bevy_ui/src/layout/mod.rs +++ b/crates/bevy_ui/src/layout/mod.rs @@ -264,10 +264,16 @@ pub fn ui_layout_system( let Ok(layout) = ui_surface.get_layout(entity) else { return; }; - let layout_size = - inverse_target_scale_factor * Vec2::new(layout.size.width, layout.size.height); - let layout_location = - inverse_target_scale_factor * Vec2::new(layout.location.x, layout.location.y); + let layout_size = inverse_target_scale_factor + * Vec2::new( + layout.size.width - layout.padding.left - layout.padding.right, + layout.size.height - layout.padding.top - layout.padding.bottom, + ); + let layout_location = inverse_target_scale_factor + * Vec2::new( + layout.location.x + layout.padding.left, + layout.location.y + layout.padding.top, + ); absolute_location += layout_location;