Preserve scenario viewport when editing a diagram message
This commit is contained in:
@@ -1221,8 +1221,11 @@ pub fn view<'a>(app: &'a App, owner: Id, mut out: Column<'a, Message>) -> Elemen
|
||||
}
|
||||
}));
|
||||
let pending = app.behavior.has_pending();
|
||||
// Keep the canvas at a stable widget-tree position when a form replaces
|
||||
// the palette, so Iced retains the user's current sequence viewport.
|
||||
let mut controls = column![].spacing(12);
|
||||
if !pending {
|
||||
out = out
|
||||
controls = controls
|
||||
.push(
|
||||
row![
|
||||
action("+ Lifeline", event(Event::Start(owner, Tool::Lifeline))),
|
||||
@@ -1252,7 +1255,7 @@ pub fn view<'a>(app: &'a App, owner: Id, mut out: Column<'a, Message>) -> Elemen
|
||||
MessageStyle::CallReply
|
||||
};
|
||||
if !pending {
|
||||
out = out.push(
|
||||
controls = controls.push(
|
||||
row![
|
||||
button("Select / reorder")
|
||||
.on_press(Message::ScenarioCanvas(CanvasEvent::Choose(
|
||||
@@ -1296,14 +1299,15 @@ pub fn view<'a>(app: &'a App, owner: Id, mut out: Column<'a, Message>) -> Elemen
|
||||
]
|
||||
.spacing(6),
|
||||
);
|
||||
out = out.push(label(if matches!(tool, CanvasTool::Message(_)) {
|
||||
controls = controls.push(label(if matches!(tool, CanvasTool::Message(_)) {
|
||||
"Draw message · choose the highlighted sequence position on a lifeline, then click or drag to another lifeline · Escape cancels"
|
||||
} else { "Select a lifeline or occurrence · drag the selected occurrence’s ↕ handle to reorder within its sequence" }));
|
||||
} else {
|
||||
out = out.push(label(
|
||||
controls = controls.push(label(
|
||||
"Pending form · the canvas remains visible · apply or cancel below",
|
||||
));
|
||||
}
|
||||
out = out.push(controls);
|
||||
let mut scene = Scene::sequence(p, owner, app.selected);
|
||||
scene.interaction = Some((
|
||||
context,
|
||||
|
||||
+13
-4
@@ -204,12 +204,21 @@ logs desktop{-clippy,-release}-dfd2e41.log in Linux target/linux-verification.
|
||||
Semantic core/source5 checkpoint346fb24 passed345 core tests (one intentional
|
||||
ignored probe) and strict Clippy; independent nine-finding recheck is closed.
|
||||
Semantic checkout server test checkpointc746ab6 passes42 existing server tests
|
||||
and strict Clippy after seven current-output assertions changed to5. Semantic API
|
||||
production additions were rejected twice by automatic approval review; a direct
|
||||
authorization question is pending. No API route bodies were retained. Spec work
|
||||
continues independently. Process direct editing is active in codex/process-direct.
|
||||
and strict Clippy after seven current-output assertions changed to5. User explicitly reconfirmed REST work after two automatic review rejections.
|
||||
The scoped retry is approved; semantic query/preview/apply and HTTP tests are
|
||||
implemented, with independent transport review and schema validation active.
|
||||
Normative source5 spec02f99a9 passed strict generation and extracted examples;
|
||||
independent no-op-guarantee finding was fixed in29df024. Process direct editing is active in codex/process-direct.
|
||||
|
||||
Next: verify scenario UI fixes on Windows/Linux; integrate semantic core/source,
|
||||
spec and authorized API; implement semantic GUI; integrate direct process editing.
|
||||
Broader coverage/lifecycle/hosted/help/release gates in PLAN remain active. Main
|
||||
is4101434 (docs pointer on productiona8f451e); this integration is not yet accepted.
|
||||
|
||||
Latest native refinement c6c07cc: pinned actions/mode feedback/names pass normal
|
||||
and compact Windows inspection. Native ALT creation, operand pair insertion,
|
||||
correlation spans, invalid order, Save/Undo/Redo passed (saved62 objects). Canvas
|
||||
remount on entering/leaving forms loses the viewed region; stable controls sibling
|
||||
fix is being verified next. Exact evidence is in release-scenario-editing.md.
|
||||
Linux287 tests/strict Clippy/release passed c6c07cc. Process7a1e12b passes303 desktop
|
||||
tests; independent Exchange-first continuation finding is being fixed by worker.
|
||||
|
||||
@@ -256,3 +256,28 @@ inner and outer scrolling. Root is refining those three issues before accepting
|
||||
the milestone. ALT/reuse/resize/save recovery and Linux native remain pending.
|
||||
|
||||
Root UI refinement checks:287 desktop tests passed, strict all-target desktop Clippy passed, optimized Windows desktop build passed. Native verification of this refinement remains pending.
|
||||
|
||||
|
||||
## Refined Windows native results and viewport finding
|
||||
|
||||
c6c07cc Windows frozen binary SHA256
|
||||
4A49AD95C466BACBD1D1EA96FFF983BDA2F5DA9B7DCCBF91C387655CEF88B419,
|
||||
ui-scenario-refined-windows. Native1440x900 and1100x700 show differentiated tool
|
||||
selection, occurrence-first message names and pinned Create/Cancel. A pending
|
||||
Navigation outcome ALT fragment retained its name and route.available guard across
|
||||
width/height resizing. Create produced the fragment and two operands. Native
|
||||
click-click in its first operand explicitly captured that operand's append slot;
|
||||
Available route plus correlated Reply were created on Navigation request. Execution
|
||||
bar ends at that reply. Reply-before-call reorder rejects with reply_order. Save
|
||||
All writes62 objects/5 links/3 checks; exact nested source shows the guarded operand
|
||||
contains only that correlated pair. Undo removes both (60); Redo restores saved62.
|
||||
The saved native trial was closed before the next refinement.
|
||||
|
||||
Native also found the canvas jumps to its start whenever the palette is replaced
|
||||
by a form or restored. Diagnosis: conditional siblings change its Iced widget-tree
|
||||
position. Group the controls as one stable sibling and verify that actual viewport
|
||||
is retained across drawing/form/cancel/create. This is distinct from deliberate
|
||||
new-selection reveal (not implemented yet). Linux287 tests, strict Clippy and
|
||||
optimized build pass for c6c07cc; native Linux remains pending.
|
||||
|
||||
Stable-canvas refinement:287 desktop tests, strict all-target Clippy and optimized Windows build passed. Native retention trial remains pending.
|
||||
|
||||
Reference in New Issue
Block a user