bevy/crates
Nihilistas 6a4b48ba6b
#14143 - fix bevy_ui padding (#14777)
# Objective

fixes #14143

## Solution

- removed the temporary blocker if statement when setting padding in
`Style`
- adjusted the `layout_location` and `layout_size` so they use
`layout.padding` which we already get from Taffy

## Testing

- this is the test code I used:
```rust
use bevy::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_systems(Startup, setup)
        .run();
}

fn setup(
    mut commands: Commands,
    asset_server: Res<AssetServer>,
){
    let font = asset_server.load("fonts/FiraSans-Bold.ttf");
    commands.spawn(Camera2dBundle::default());

    commands
        .spawn(NodeBundle {
            style: Style {
                width: Val::Px(200.),
                height: Val::Px(100.),
                align_items: AlignItems::Center,
                justify_content: JustifyContent::Center,
                align_self: AlignSelf::Center,
                justify_self: JustifySelf::Center,
                ..Default::default()
            },
            background_color: BackgroundColor(Color::srgb(0.,1., 1.)),
            ..Default::default()
        })
        .with_children(|builder| {
            builder.spawn((TextBundle::from_section(
                    "Hello World",
                    TextStyle {
                        font,
                        font_size: 32.0,
                        color: Color::WHITE,
                        },
                ).with_style(Style {
                    padding: UiRect::all(Val::Px(10.)),
                    width: Val::Px(100.),
                    height: Val::Px(100.),
                    ..Default::default()
                }).with_background_color(Color::srgb(1.,0., 0.)),
            ));
            // spawn an image bundle
            builder.spawn(ImageBundle {
                style: Style {
                    padding: UiRect::all(Val::Px(10.)),
                    width: Val::Px(100.),
                    height: Val::Px(100.),
                    ..Default::default()
                },
                image: asset_server.load("square.png").into(),
                ..Default::default()
            });
        });
}
```

- I tested 5 cases: 10px padding from all sides, and 10px padding from
left, right, bottom, and top separately

- **For reviewers**: please check more cases or try to run it on some
more complicated real-world UI

## Showcase

<img width="374" alt="Screenshot 2024-08-16 at 09 28 04"
src="https://github.com/user-attachments/assets/59b85b00-e255-4669-be13-a287ef35d4d9">
<img width="288" alt="Screenshot 2024-08-16 at 09 28 47"
src="https://github.com/user-attachments/assets/170a79b1-ec9c-45f9-82f5-ba7fa4029334">
<img width="274" alt="Screenshot 2024-08-16 at 09 45 16"
src="https://github.com/user-attachments/assets/e3fd9b59-b41f-427d-8c07-5acdf1dc5ecf">
<img width="292" alt="Screenshot 2024-08-16 at 09 45 36"
src="https://github.com/user-attachments/assets/c4f708aa-3f0d-4ff3-b779-0d4ed5f6ba73">
<img width="261" alt="Screenshot 2024-08-16 at 09 45 58"
src="https://github.com/user-attachments/assets/eba1e26f-04ca-4178-87c8-3a79daff3a9a">

---------

Co-authored-by: dpeke <dpekelis@funstage.com>
2024-09-05 21:35:40 +02:00
..
bevy_a11y Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_animation apply finished animations (#14743) 2024-09-05 21:35:40 +02:00
bevy_app Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_asset Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_audio Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_color Fix hue mixing for Lcha and Oklcha (#14468) 2024-09-05 21:34:05 +02:00
bevy_core Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_core_pipeline Fix TAA on camera with viewport (#14582) 2024-09-05 21:35:40 +02:00
bevy_derive Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_dev_tools Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_diagnostic Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_dylib Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_dynamic_plugin Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_ecs Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_encase_derive Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_gilrs Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_gizmos Fix 3D Gizmo webgpu rendering (#14653) 2024-09-05 21:35:40 +02:00
bevy_gltf Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_hierarchy Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_input Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_internal Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_log Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_macro_utils Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_math Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_mikktspace Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_pbr Don’t prepare lights (and shadow map textures) for 2D cameras (#14574) 2024-09-05 21:34:05 +02:00
bevy_ptr Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_reflect Making DynamicEnum::is_dynamic() return true (#14732) 2024-09-05 21:35:40 +02:00
bevy_render Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_scene Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_sprite Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_state Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_tasks Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_text Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_time Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_transform Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_ui #14143 - fix bevy_ui padding (#14777) 2024-09-05 21:35:40 +02:00
bevy_utils Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_window Release 0.14.1 2024-08-02 20:35:38 +02:00
bevy_winit Release 0.14.1 2024-08-02 20:35:38 +02:00