diff --git a/crates/ui-egui/src/dialogs/mod.rs b/crates/ui-egui/src/dialogs/mod.rs index 4c451a32c..91e55b372 100644 --- a/crates/ui-egui/src/dialogs/mod.rs +++ b/crates/ui-egui/src/dialogs/mod.rs @@ -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); } diff --git a/crates/ui-egui/src/panels/swatches.rs b/crates/ui-egui/src/panels/swatches.rs index b769e871b..957daf283 100644 --- a/crates/ui-egui/src/panels/swatches.rs +++ b/crates/ui-egui/src/panels/swatches.rs @@ -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 = if selected.is_empty() { active_swatch.into_iter().collect() } else { selected.clone() }; + let fallback: Vec = 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;