M3.12: the dialog Cancel button reuses dialogs::cancel; the Swatches panel no longer clones its selection every frame

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
bflatastic
2026-10-04 17:45:50 +07:00
co-authored by Claude Opus 5.5
parent d1d133bf09
commit 8910f8fd1e
2 changed files with 3 additions and 5 deletions
+1 -4
View File
@@ -221,10 +221,7 @@ pub fn show(app: &mut VectorcraftApp, ctx: &egui::Context) {
}
app.ui.dialog = Some(d);
if cancel {
if spec.preview {
let _ = app.session.cancel_interaction();
}
app.ui.dialog = None;
self::cancel(app);
} else if ok && let Err(e) = confirm(app) {
app.status(e);
}
+2 -1
View File
@@ -263,7 +263,8 @@ pub fn show(app: &mut VectorcraftApp, ui: &mut Ui) {
};
let selected = selection(app, ui);
// Without a selection the swatch of the active paint is highlighted.
let sel: Vec<String> = if selected.is_empty() { active_swatch.into_iter().collect() } else { selected.clone() };
let fallback: Vec<String> = if selected.is_empty() { active_swatch.into_iter().collect() } else { vec![] };
let sel = if selected.is_empty() { &fallback } else { &selected };
let is_sel = |name: &str| sel.iter().any(|s| s == name);
let (tile, pitch) = view.tile();
let mut clicked: Option<(Entry, egui::Modifiers)> = None;