mirror of
https://github.com/tauri-apps/tao.git
synced 2026-01-31 00:35:16 +01:00
fix(windows): fix set_fullscreen early return for Fullscreen::Borderless(None) (#854)
This commit is contained in:
5
.changes/windows-set-fullscreen-early-return.md
Normal file
5
.changes/windows-set-fullscreen-early-return.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"tao": "patch"
|
||||
---
|
||||
|
||||
On Windows, fix consecutive calls to `window.set_fullscreen(Some(Fullscreen::Borderless(None)))` resulting in losing previous window state when eventually exiting fullscreen using `window.set_fullscreen(None)`.
|
||||
@@ -621,9 +621,19 @@ impl Window {
|
||||
|
||||
let mut window_state_lock = window_state.lock();
|
||||
let old_fullscreen = window_state_lock.fullscreen.clone();
|
||||
if window_state_lock.fullscreen == fullscreen {
|
||||
return;
|
||||
|
||||
match (&old_fullscreen, &fullscreen) {
|
||||
// Return if we already in the same fullscreen mode
|
||||
_ if old_fullscreen == fullscreen => return,
|
||||
// Return if saved Borderless(monitor) is the same as current monitor when requested fullscreen is Borderless(None)
|
||||
(Some(Fullscreen::Borderless(Some(monitor))), Some(Fullscreen::Borderless(None)))
|
||||
if monitor.inner == monitor::current_monitor(window.0) =>
|
||||
{
|
||||
return
|
||||
}
|
||||
_ => {}
|
||||
}
|
||||
|
||||
window_state_lock.fullscreen = fullscreen.clone();
|
||||
drop(window_state_lock);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user