viewer: 슬라이더 자동적용 제거 — Apply 버튼 명시적 클릭만

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
minsung
2026-04-14 20:51:13 +09:00
parent 2550e13b10
commit 257630f64b

View File

@@ -429,13 +429,12 @@ impl RenderState {
ui.heading("교량 속성"); ui.heading("교량 속성");
ui.separator(); ui.separator();
// Helper: slider that auto-applies on drag release
macro_rules! param_slider { macro_rules! param_slider {
($label:expr, $val:expr, $range:expr, $step:expr) => {{ ($label:expr, $val:expr, $range:expr, $step:expr) => {{
ui.label($label); ui.label($label);
let r = ui.add(egui::Slider::new($val, $range).step_by($step)); if ui.add(egui::Slider::new($val, $range).step_by($step)).changed() {
if r.drag_released() || r.lost_focus() { apply = true; dirty = true; } dirty = true;
if r.changed() { dirty = true; } }
}}; }};
} }
@@ -446,11 +445,9 @@ impl RenderState {
param_slider!("슬래브 두께(mm)",&mut p.slab_thickness, 150.0..=400.0, 10.0); param_slider!("슬래브 두께(mm)",&mut p.slab_thickness, 150.0..=400.0, 10.0);
ui.separator(); ui.separator();
if dirty && !apply { if dirty {
// Manual apply button as fallback
if ui.button("▶ 적용 (Apply)").clicked() { apply = true; } if ui.button("▶ 적용 (Apply)").clicked() { apply = true; }
ui.small("* 슬라이더를 놓으면 자동 적용"); } else {
} else if !dirty {
ui.label("✓ 최신 상태"); ui.label("✓ 최신 상태");
} }