ElyMark: R4.10 round 2 fixes (copy guard, component 2b8bd9f)

A pending conversion no longer overwrites a later clipboard write; pin
moves to component 2b8bd9f (one-pass drawn lookup, latest press wins).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-10-14 21:52:25 -04:00
1 parent 67fa5bfc94
commit 2c374b23ed
8 files changed
+49 -7

No files matched your search

+5
View File
@@ -64,6 +64,7 @@ impl Desk {
let Some((markdown, beside)) = self.copied_text(cx) else {
return;
};
let before = cx.read_from_clipboard();
self.copying = Some(cx.spawn(async move |desk, cx| {
let converted = cx
.background_executor()
@@ -71,6 +72,10 @@ impl Desk {
.await;
let landed = desk.update(cx, |desk, cx| {
desk.copying = None;
// A later copy, here or elsewhere, wins.
if cx.read_from_clipboard() != before {
return log::info!("mark: the clipboard changed first; a copy is dropped");
}
desk.copied(converted, cx);
});
if landed.is_err() {