diff --git a/CHANGELOG.md b/CHANGELOG.md index 282a4f2d..20eaef64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ Unreleased` header. - On Wayland, ignore resize requests when the window is fully tiled. - On Wayland, use `configure_bounds` to constrain `with_inner_size` when compositor wants users to pick size. - On Windows, fix deadlock when accessing the state during `Cursor{Enter,Leave}`. +- On Windows, add support for `Window::set_transparent`. - On macOS, fix deadlock when entering a nested event loop from an event handler. # 0.29.2 diff --git a/src/platform_impl/windows/window.rs b/src/platform_impl/windows/window.rs index 92e70f76..3f891d5b 100644 --- a/src/platform_impl/windows/window.rs +++ b/src/platform_impl/windows/window.rs @@ -126,7 +126,16 @@ impl Window { } } - pub fn set_transparent(&self, _transparent: bool) {} + pub fn set_transparent(&self, transparent: bool) { + let window = self.window.clone(); + let window_state = Arc::clone(&self.window_state); + self.thread_executor.execute_in_thread(move || { + let _ = &window; + WindowState::set_window_flags(window_state.lock().unwrap(), window.0, |f| { + f.set(WindowFlags::TRANSPARENT, transparent) + }); + }); + } pub fn set_blur(&self, _blur: bool) {} diff --git a/src/window.rs b/src/window.rs index 3352abba..3a00fd2b 100644 --- a/src/window.rs +++ b/src/window.rs @@ -904,7 +904,7 @@ impl Window { /// /// ## Platform-specific /// - /// - **Windows / Web / iOS / Android / Orbital:** Unsupported. + /// - **Web / iOS / Android / Orbital:** Unsupported. /// - **X11:** Can only be set while building the window, with [`WindowBuilder::with_transparent`]. #[inline] pub fn set_transparent(&self, transparent: bool) {