On Windows, add support for Window::set_transparent

This commit is contained in:
Kirill Chibisov 2023-10-28 02:22:45 +04:00 committed by GitHub
parent 12dbbf8012
commit 5a3be586f4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 2 deletions

View file

@ -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

View file

@ -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) {}

View file

@ -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) {