feat(rust): native Win32 window opacity via SetLayeredWindowAttributes
Tauri 2.11 doesn't expose set_opacity on its WebviewWindow (open issue tauri-apps/tauri#3279). Drop down to the Win32 API directly: ensure WS_EX_LAYERED is set on the overlay HWND, then SetLayeredWindowAttributes with an 0..255 alpha. This is true OS-level window translucency — the same call Tauri will eventually wrap upstream — not a CSS shim. windows crate version is pinned to 0.61 to match Tauri 2.11.x's transitive dependency, so WebviewWindow::hwnd() returns a compatible HWND with no diamond-dependency conflict. Replaces the earlier eval-based opacity workaround in apply_state and set_window_opacity. Both call sites now go through apply_window_opacity. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,3 +30,11 @@ tokio = { version = "1", features = ["time", "macros"] }
|
||||
tauri-plugin-window-state = "2"
|
||||
tauri-plugin-global-shortcut = "2"
|
||||
|
||||
[target."cfg(windows)".dependencies]
|
||||
# Match Tauri 2.11.x's transitive windows version so `WebviewWindow::hwnd()`
|
||||
# returns a compatible HWND (no diamond-dependency conflict).
|
||||
windows = { version = "0.61", features = [
|
||||
"Win32_Foundation",
|
||||
"Win32_UI_WindowsAndMessaging",
|
||||
] }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user