🏁 Fix #6036. Ensure window is visible after fullscreen toggle
This commit is contained in:
parent
dfab1043d9
commit
4c09b357a7
1 changed files with 12 additions and 0 deletions
|
@ -480,6 +480,8 @@ void NativeWindowViews::SetFullScreen(bool fullscreen) {
|
||||||
|
|
||||||
#if defined(OS_WIN)
|
#if defined(OS_WIN)
|
||||||
// There is no native fullscreen state on Windows.
|
// There is no native fullscreen state on Windows.
|
||||||
|
bool fullscreen_to_normal_detected = IsFullscreen() && !fullscreen;
|
||||||
|
|
||||||
if (fullscreen) {
|
if (fullscreen) {
|
||||||
last_window_state_ = ui::SHOW_STATE_FULLSCREEN;
|
last_window_state_ = ui::SHOW_STATE_FULLSCREEN;
|
||||||
NotifyWindowEnterFullScreen();
|
NotifyWindowEnterFullScreen();
|
||||||
|
@ -505,6 +507,16 @@ void NativeWindowViews::SetFullScreen(bool fullscreen) {
|
||||||
// We set the new value after notifying, so we can handle the size event
|
// We set the new value after notifying, so we can handle the size event
|
||||||
// correctly.
|
// correctly.
|
||||||
window_->SetFullscreen(fullscreen);
|
window_->SetFullscreen(fullscreen);
|
||||||
|
|
||||||
|
// If restoring from fullscreen and the window isn't visible, force visible,
|
||||||
|
// else a non-responsive window shell could be rendered.
|
||||||
|
// (this situation may arise when app starts with fullscreen: true)
|
||||||
|
// Note: the following must be after "window_->SetFullscreen(fullscreen);"
|
||||||
|
if (fullscreen_to_normal_detected && !IsVisible()) {
|
||||||
|
LONG frame_style = ::GetWindowLong(GetAcceleratedWidget(), GWL_STYLE);
|
||||||
|
frame_style |= WS_VISIBLE;
|
||||||
|
::SetWindowLong(GetAcceleratedWidget(), GWL_STYLE, frame_style);
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
if (IsVisible())
|
if (IsVisible())
|
||||||
window_->SetFullscreen(fullscreen);
|
window_->SetFullscreen(fullscreen);
|
||||||
|
|
Loading…
Reference in a new issue