From 81db58c8b3a94c7f3fcc2a17d9400dfcd38f6574 Mon Sep 17 00:00:00 2001 From: "sorokin.oleg.edu" Date: Thu, 24 Sep 2026 18:39:58 -0700 Subject: [PATCH] Resolve removal menu import and share visibility admission --- crates/oa-desktop/src/app/scenario_removal.rs | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/crates/oa-desktop/src/app/scenario_removal.rs b/crates/oa-desktop/src/app/scenario_removal.rs index 588a206c..18ee9981 100644 --- a/crates/oa-desktop/src/app/scenario_removal.rs +++ b/crates/oa-desktop/src/app/scenario_removal.rs @@ -3,6 +3,7 @@ use super::*; use crate::behavior::scenario::{self, group_removal, selection}; use crate::diagram_selection::Snapshot; use crate::diagram_usage::Target; +use crate::model_menu; #[cfg(test)] mod tests; @@ -50,15 +51,19 @@ impl App { } fn scenario_removal_matches(&self, context: scenario::Context, snapshot: &Snapshot) -> bool { - self.scenario_context() == Some(context) - && self + if self.scenario_context() != Some(context) + || !self .diagram_selection .as_ref() .is_some_and(|selected| selected.matches(snapshot, selection::context(context))) - && snapshot - .targets() - .iter() - .all(|target| self.multiselect_target_visible(target)) + { + return false; + } + let visible = selection::visible(self.project(), context, self.selected); + snapshot + .targets() + .iter() + .all(|target| visible.contains(target)) } pub(super) fn scenario_removal_event(&mut self, event: Event) -> Task {