← Commit history

1.0.48: 1.0.48: the backgroundGuard switch now switches off ALL of the bridge's window moving. A second mechanism, the per-verb focus check that runs after every window verb, ignored the switch: it pushed a KiCad window back and forced the user's previous window to the front after each verb, so with the guard off KiCad still never ended up in front and the A/B comparison showed nothing. It now obeys the switch, never targets a shell window, and asks for the user's window back with one plain SetForegroundWindow instead of the forcing call (thread-input attach, the same call that crashed Explorer when aimed at the taskbar).

John Lauer ·30a72d0ea8 ·1mo ago ·parent c9c9e6e
1 file changed +9
rust/crates/kicad-platform/src/windows.rs+9
@@ -264,6 +264,15 @@ impl Platform for Native {     fn etiquette_set_enabled(&self, on: bool) {         win::etiquette::set_enabled(on)     }+    fn etiquette_enabled(&self) -> bool {+        win::etiquette::enabled()+    }+    fn is_shell_window(&self, h: u64) -> bool {+        win::etiquette::is_shell_hwnd(h)+    }+    fn request_foreground(&self, h: u64) -> bool {+        win::focus::request_foreground(win::hwnd(h))+    }     fn etiquette_set_flash_suppressed(&self, on: bool) {         win::etiquette::set_flash_suppressed(on)     }