← Commit history

1.0.41: 1.0.41: the background guard stops guessing. It used to decide whether a KiCad window reaching the foreground was the user's doing from a 120 ms mouse-button poll and a timing window, and while any verb ran it pushed back ANY bridge-owned KiCad window, again and again. John, clicking KiCad's taskbar buttons during a test: 'i just tried clicking to bring kicad to the foreground and then you yank it to the background on me'. New rule, no heuristics: the bridge may push back only the window it is OPENING RIGHT NOW (one that did not exist when the verb in flight began, until 3 s after that verb ends). Every other KiCad window is the user's to raise by click, Alt-Tab, Win+number or anything else, whatever the bridge is doing. After a push it ASKS for the user's window back with one plain SetForegroundWindow: no thread-input attach, no ShowWindow, no BringWindowToTop, never a shell window (1.0.40; forcing the taskbar crashed Explorer in Taskbar.View.dll). Also found: the win/ unit tests never run in the Linux container, and the once-per-window test had been failing unseen since 2026-09-12; the whole Windows test binary (36 tests) now passes on a real Windows box.

John Lauer ·533a4fec9f ·1mo ago ·parent 28a71c6
2 files changed +4−4
rust/Cargo.lock+3−3
@@ -244,7 +244,7 @@ dependencies = [  [[package]] name = "kicad-bridge"-version = "1.0.40"+version = "1.0.41" dependencies = [  "kicad-core",  "kicad-platform",@@ -255,7 +255,7 @@ dependencies = [  [[package]] name = "kicad-core"-version = "1.0.40"+version = "1.0.41" dependencies = [  "kicad-ipc-rs",  "kicad-platform",@@ -281,7 +281,7 @@ dependencies = [  [[package]] name = "kicad-platform"-version = "1.0.40"+version = "1.0.41" dependencies = [  "serde",  "serde_json",
rust/Cargo.toml+1−1
@@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*"]  [workspace.package]-version = "1.0.40"+version = "1.0.41" edition = "2021" license = "MIT" publish = false