From 8d6fac4701933c7ada13cc7e6e07060662aa7465 Mon Sep 17 00:00:00 2001 From: "sorokin.oleg.edu" Date: Thu, 24 Sep 2026 16:05:45 -0700 Subject: [PATCH] Distinguish saved group spacing from semantic reorder in UI guidance --- crates/oa-desktop/src/app.rs | 2 +- crates/oa-desktop/src/behavior.rs | 2 +- crates/oa-desktop/src/behavior/scenario/workspace.rs | 5 ++++- crates/oa-desktop/src/model_menu.rs | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/crates/oa-desktop/src/app.rs b/crates/oa-desktop/src/app.rs index 72b98492..af7cedc6 100644 --- a/crates/oa-desktop/src/app.rs +++ b/crates/oa-desktop/src/app.rs @@ -1377,7 +1377,7 @@ impl App { Message::Command(Command::MoveStep(..)) | Message::Delete ) { - self.status = "Group movement and removal need a whole-selection operation. Select one occurrence to edit it individually.".into(); + self.status = "Group reordering and removal need a whole-selection operation. Select one occurrence to edit it individually.".into(); return Task::none(); } let preview_read_only = self.process_preview_primary().is_some(); diff --git a/crates/oa-desktop/src/behavior.rs b/crates/oa-desktop/src/behavior.rs index 52d81518..d6c1793e 100644 --- a/crates/oa-desktop/src/behavior.rs +++ b/crates/oa-desktop/src/behavior.rs @@ -2387,7 +2387,7 @@ impl canvas::Program for Scene { } let intent = if press.moved { Intent::Refuse( - "Group movement is being implemented; select one occurrence to edit it" + "This selection cannot be moved here; select one occurrence for its individual actions" .into(), ) } else { diff --git a/crates/oa-desktop/src/behavior/scenario/workspace.rs b/crates/oa-desktop/src/behavior/scenario/workspace.rs index 85597736..09cda758 100644 --- a/crates/oa-desktop/src/behavior/scenario/workspace.rs +++ b/crates/oa-desktop/src/behavior/scenario/workspace.rs @@ -278,7 +278,10 @@ pub fn view<'a>(app: &'a App, owner: Id, out: Column<'a, Message>) -> Element<'a let entries = [ ( "S", - if selected_count > 1 { + if selected_count > 1 && matches!(context.representation, Representation::Saved { .. }) + { + "Drag messages vertically or lifelines horizontally; Shift-click to change selection" + } else if selected_count > 1 { "Shift-click to change selection; click a member to select only it" } else if matches!(context.representation, Representation::Saved { .. }) { "Select / move messages and lifelines" diff --git a/crates/oa-desktop/src/model_menu.rs b/crates/oa-desktop/src/model_menu.rs index 30a7fc99..60f598b9 100644 --- a/crates/oa-desktop/src/model_menu.rs +++ b/crates/oa-desktop/src/model_menu.rs @@ -367,7 +367,7 @@ pub fn popup(app: &App) -> Option> { snapshot.targets().len() ))); entries.push(Entry::disabled( - "Move selected occurrences (not yet available)", + "Reorder selected occurrences (not yet available)", )); entries.push(Entry::disabled( "Remove selected occurrences (not yet available)",