Skip to content

increase the size of button_padding.y in ui.horizontal(), the widgets will create a step layer. #5029

Closed
@rustbasic

Description

@rustbasic

If increase the size of button_padding.y in ui.horizontal(), the widgets will create a step layer.
It is okay to change item_spacing.

I haven't checked the problematic part in detail.
This is expected to be a problem that has existed for a long time.

bug-20240829

Test Example :

use eframe::egui::*;

fn main() -> eframe::Result {
    let options = eframe::NativeOptions {
        viewport: egui::ViewportBuilder::default().with_inner_size([320.0, 240.0]),
        ..Default::default()
    };
    eframe::run_native(
        "My egui App",
        options,
        Box::new(|_cc| Ok(Box::<MyApp>::default())),
    )
}

#[derive(Default)]
struct MyApp {
    temp_value: usize,
    _text: String,
}

impl eframe::App for MyApp {
    fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
        egui::CentralPanel::default().show(ctx, |ui| {
            ui.separator();

            ui.horizontal(|ui| {
                ui.label("TEST");

                ui.horizontal(|ui| {
                    ui.label("TEST");
    
                    ui.horizontal(|ui| {
                        ui.label("TEST");
        
                        ui.horizontal(|ui| {
                            ui.label("TEST");
                        });
                    });
                });
            });

            ui.separator();

            ui.horizontal(|ui| {
                ui.label("TEST");
                if ui.button("⟲").clicked() {
                    self.temp_value = 255;
                }

                ui.horizontal(|ui| {
                    ui.label("TEST");
                    if ui.button("⟲").clicked() {
                        self.temp_value = 255;
                    }
    
                    ui.horizontal(|ui| {
                        ui.label("TEST");
                        if ui.button("⟲").clicked() {
                            self.temp_value = 255;
                        }
        
                        ui.horizontal(|ui| {
                            ui.label("TEST");
                            if ui.button("⟲").clicked() {
                                self.temp_value = 255;
                            }
                        });
                    });
                });
            });

            ui.separator();

            ui.horizontal(|ui| {
                ui.label("TEST");
                ui.add(DragValue::new(&mut self.temp_value));
                if ui.button("⟲").clicked() {
                    self.temp_value = 255;
                }

                ui.horizontal(|ui| {
                    ui.label("TEST");
                    ui.add(DragValue::new(&mut self.temp_value));
                    if ui.button("⟲").clicked() {
                        self.temp_value = 255;
                    }

                    ui.horizontal(|ui| {
                        ui.label("TEST");
                        ui.add(DragValue::new(&mut self.temp_value));
                        if ui.button("⟲").clicked() {
                            self.temp_value = 255;
                        }

                        ui.horizontal(|ui| {
                            ui.label("TEST");
                            ui.add(DragValue::new(&mut self.temp_value));
                            if ui.button("⟲").clicked() {
                                self.temp_value = 255;
                            }
                        });
                    });
                });
            });

            ui.separator();

            ui.horizontal(|ui| {
                ui.label("TEST");
                ui.add(DragValue::new(&mut self.temp_value));
                if ui.button("⟲").clicked() {
                    self.temp_value = 255;
                }

                ui.horizontal(|ui| {
                    ui.label("TEST");
                    ui.add(DragValue::new(&mut self.temp_value));
                    if ui.button("⟲").clicked() {
                        self.temp_value = 255;
                    }
                });
                ui.horizontal(|ui| {
                    ui.label("TEST");
                    ui.add(DragValue::new(&mut self.temp_value));
                    if ui.button("⟲").clicked() {
                        self.temp_value = 255;
                    }
                });
                ui.horizontal(|ui| {
                    ui.label("TEST");
                    ui.add(DragValue::new(&mut self.temp_value));
                    if ui.button("⟲").clicked() {
                        self.temp_value = 255;
                    }
                });
            });

            ui.separator();

            ui.horizontal(|ui| {
                ui.label("TEST");
                ui.add(DragValue::new(&mut self.temp_value));
                if ui.button("⟲").clicked() {
                    self.temp_value = 255;
                }

                ui.horizontal(|ui| {
                    ui.label("TEST");
                    ui.add(Slider::new(&mut self.temp_value, 0..=255));
                    ui.add(DragValue::new(&mut self.temp_value));
                    if ui.button("⟲").clicked() {
                        self.temp_value = 255;
                    }
                });
                ui.horizontal(|ui| {
                    ui.label("TEST");
                    ui.add(Slider::new(&mut self.temp_value, 0..=255));
                    ui.add(DragValue::new(&mut self.temp_value));
                    if ui.button("⟲").clicked() {
                        self.temp_value = 255;
                    }
                });
                ui.horizontal(|ui| {
                    ui.label("TEST");
                    ui.add(Slider::new(&mut self.temp_value, 0..=255));
                    ui.add(DragValue::new(&mut self.temp_value));
                    if ui.button("⟲").clicked() {
                        self.temp_value = 255;
                    }
                });
            });

            ui.separator();

            ctx.settings_ui(ui);
        });
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions