Preserve background pan and retire legacy Scenario selection gestures

This commit is contained in:
2026-09-24 00:34:35 -07:00
parent 879eb1d5c8
commit a0a70340a6
6 changed files with 464 additions and 8 deletions
@@ -198,7 +198,12 @@ pub fn view<'a>(app: &'a App, owner: Id, out: Column<'a, Message>) -> Element<'a
container(text("No supported canvas geometry is available. Inspect the model or open its source to repair this view."))
.id("scenario-viewport-unavailable").padding(16).width(Fill).height(Fill).style(style::card).into()
};
let mut navigation = row![out.width(Fill)].spacing(6);
let selected_count = snapshot.as_ref().map_or(0, |s| s.targets().len());
let mut navigation = row![
out.width(Fill),
text(format!("{selected_count} selected")).size(12)
]
.spacing(6);
if state.can_back(p, context) {
navigation =
navigation.push(button(text("Back").size(12)).padding(6).on_press_maybe(
@@ -264,7 +269,9 @@ pub fn view<'a>(app: &'a App, owner: Id, out: Column<'a, Message>) -> Element<'a
let entries = [
(
"S",
if matches!(context.representation, Representation::Saved { .. }) {
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"
} else {
"Select / reorder occurrences"
@@ -345,7 +352,15 @@ pub fn view<'a>(app: &'a App, owner: Id, out: Column<'a, Message>) -> Element<'a
}),
);
let mut details = column![
text(format!("Selected: {}", p.named(app.selected))).size(12),
text(if selected_count > 1 {
format!(
"{selected_count} selected; properties: {}",
p.named(app.selected)
)
} else {
format!("Selected: {}", p.named(app.selected))
})
.size(12),
container(button(text("Properties").size(12)).on_press_maybe(
(clean && properties_target(p, context, app.selected)).then_some(
Message::ScenarioCanvas(CanvasEvent::Properties(context, app.selected)),