diff --git a/src/gui/mod.rs b/src/gui/mod.rs index eb7954e..8e20686 100644 --- a/src/gui/mod.rs +++ b/src/gui/mod.rs @@ -1010,6 +1010,13 @@ impl PixelPassApp { ui.heading("Settings"); }); ui.separator(); + // Body scrolls; the header above stays pinned. The Appearance editor + // (13 colour rows + Save) overflows a short window otherwise — you'd + // have to resize the window to reach the Save button. + egui::ScrollArea::vertical().show(ui, |ui| self.settings_body(ui)); + } + + fn settings_body(&mut self, ui: &mut egui::Ui) { ui.add_space(4.0); let resp = ui.checkbox( @@ -1149,6 +1156,13 @@ impl PixelPassApp { if ui.button("💾 Save").clicked() { self.save_draft_theme(); } + // Reset the draft to the original Default Dark palette. Previews + // live (the editor applies the draft each frame), so it snaps back + // immediately; Save persists it, Cancel discards. + if ui.button("↺ Defaults").clicked() { + self.theme.draft = theme::default_dark(); + self.theme.status = Some("Reset to the Default Dark palette.".to_string()); + } if ui.button("Cancel").clicked() { self.cancel_theme_edit(); }