Fix: sketch edit exit (double-click a sketch no longer traps you)

Edit Sketch rolls the timeline back to just after the sketch and faces it;
Finish Sketch, Esc (once nothing else is left to cancel) and editing another
feature all leave it, restoring the marker and the previous view. Editing the
open sketch again is a no-op and editing another sketch switches cleanly.
The control channel's ui.click takes double: true.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
This commit is contained in:
bherbruckandClaude Opus 5.5 committed 2026-10-07 22:25:45 +00:00
1 parent 73f68f3f50
commit 71a1903122
6 files changed
+138 -12

No files matched your search

+5 -2
View File
@@ -150,8 +150,11 @@ pub fn handle(app: &mut SolveApp, ctx: &egui::Context, req: &ControlRequest) ->
_ => egui::PointerButton::Primary,
};
let modifiers = egui::Modifiers { shift: b("shift"), ctrl: b("ctrl"), command: b("ctrl"), ..Default::default() };
app.synthetic.push(egui::Event::PointerButton { pos, button, pressed: true, modifiers });
app.synthetic.push(egui::Event::PointerButton { pos, button, pressed: false, modifiers });
// `double: true` sends two clicks in one frame, which egui reads as a double-click.
for _ in 0..if b("double") { 2 } else { 1 } {
app.synthetic.push(egui::Event::PointerButton { pos, button, pressed: true, modifiers });
app.synthetic.push(egui::Event::PointerButton { pos, button, pressed: false, modifiers });
}
}
ok(Value::Null)
}