fix fullscreen, maximize, unmaximize

This commit is contained in:
liusi 2016-12-15 14:01:03 +08:00
parent 00d9baa605
commit b853671132

View file

@ -425,7 +425,7 @@ bool NativeWindowViews::IsEnabled() {
void NativeWindowViews::Maximize() { void NativeWindowViews::Maximize() {
#if defined(OS_WIN) #if defined(OS_WIN)
// For window without WS_THICKFRAME style, we can not call Maximize(). // For window without WS_THICKFRAME style, we can not call Maximize().
if (!thick_frame_) { if (!(::GetWindowLong(GetAcceleratedWidget(), GWL_STYLE) & WS_THICKFRAME)) {
restore_bounds_ = GetBounds(); restore_bounds_ = GetBounds();
auto display = auto display =
display::Screen::GetScreen()->GetDisplayNearestPoint(GetPosition()); display::Screen::GetScreen()->GetDisplayNearestPoint(GetPosition());
@ -443,7 +443,7 @@ void NativeWindowViews::Maximize() {
void NativeWindowViews::Unmaximize() { void NativeWindowViews::Unmaximize() {
#if defined(OS_WIN) #if defined(OS_WIN)
if (!thick_frame_) { if (!(::GetWindowLong(GetAcceleratedWidget(), GWL_STYLE) & WS_THICKFRAME)) {
SetBounds(restore_bounds_, false); SetBounds(restore_bounds_, false);
return; return;
} }
@ -486,19 +486,6 @@ void NativeWindowViews::SetFullScreen(bool fullscreen) {
NotifyWindowLeaveFullScreen(); NotifyWindowLeaveFullScreen();
} }
// For window without WS_THICKFRAME style, we can not call SetFullscreen().
if (!thick_frame_) {
if (fullscreen) {
restore_bounds_ = GetBounds();
auto display =
display::Screen::GetScreen()->GetDisplayNearestPoint(GetPosition());
SetBounds(display.bounds(), false);
} else {
SetBounds(restore_bounds_, false);
}
return;
}
// 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);