Files
Artemis-Plugins/plugins/cua-driver/patches/cua-driver-0.38.0-untitled-shell.patch
T
chenmingxuan b780a60e8d feat(cua): release 0.38.0+artemis.1 with verified shell observation
Upgrade the pinned driver, validate menu and taskbar focus ownership, patch untitled Shell resolution, and remove duplicate scroll scaling. Publish package provenance, verification boundaries and matching marketplace checksum. Go tests, vet, build and byte-level package verification passed.
2026-10-27 01:13:43 +08:00

34 lines
1.5 KiB
Diff

diff --git a/libs/cua-driver/rust/crates/platform-windows/src/win32/windows.rs b/libs/cua-driver/rust/crates/platform-windows/src/win32/windows.rs
index b13588d..b0bccf5 100644
--- a/libs/cua-driver/rust/crates/platform-windows/src/win32/windows.rs
+++ b/libs/cua-driver/rust/crates/platform-windows/src/win32/windows.rs
@@ -281,14 +281,26 @@ fn window_info_by_handle(hwnd: u64) -> Option<WindowInfo> {
return None;
}
let title_len = unsafe { GetWindowTextLengthW(native) };
- if title_len == 0 {
+ // An exact PID/HWND remains a valid identity for untitled native shell
+ // surfaces. Keep ordinary application/overlay discovery filters intact.
+ let untitled_shell = matches!(
+ window_class_name(native).as_str(),
+ "Shell_TrayWnd"
+ | "Shell_SecondaryTrayWnd"
+ | "NotifyIconOverflowWindow"
+ | "TopLevelWindowForOverflowXamlIsland"
+ | "#32768"
+ | "Progman"
+ | "WorkerW"
+ );
+ if title_len == 0 && !untitled_shell {
return None;
}
let mut buf = vec![0u16; (title_len + 1) as usize];
unsafe { GetWindowTextW(native, &mut buf) };
let title_len = buf.iter().position(|&c| c == 0).unwrap_or(buf.len());
let title = String::from_utf16_lossy(&buf[..title_len]);
- if title.trim().is_empty() {
+ if title.trim().is_empty() && !untitled_shell {
return None;
}
let minimized = unsafe { IsIconic(native) }.as_bool();