diff --git a/ui/platform/win/ui_window_win.cpp b/ui/platform/win/ui_window_win.cpp index 95957c0..72213a0 100644 --- a/ui/platform/win/ui_window_win.cpp +++ b/ui/platform/win/ui_window_win.cpp @@ -244,6 +244,18 @@ void WindowHelper::setNativeFrame(bool enabled) { updateMargins(); updateWindowFrameColors(); fixMaximizedWindow(); + SetWindowPos( + _handle, + 0, + 0, + 0, + 0, + 0, + SWP_FRAMECHANGED + | SWP_NOMOVE + | SWP_NOSIZE + | SWP_NOZORDER + | SWP_NOACTIVATE); } void WindowHelper::initialShadowUpdate() { @@ -403,17 +415,14 @@ bool WindowHelper::handleNativeEvent( } return true; case WM_NCCALCSIZE: { - if (_title->isHidden()) { + if (_title->isHidden() || !wParam) { return false; } WINDOWPLACEMENT wp; wp.length = sizeof(WINDOWPLACEMENT); if (GetWindowPlacement(_handle, &wp) && (wp.showCmd == SW_SHOWMAXIMIZED)) { - const auto params = (LPNCCALCSIZE_PARAMS)lParam; - const auto r = (wParam == TRUE) - ? ¶ms->rgrc[0] - : (LPRECT)lParam; + const auto r = &((LPNCCALCSIZE_PARAMS)lParam)->rgrc[0]; const auto hMonitor = MonitorFromPoint( { (r->left + r->right) / 2, (r->top + r->bottom) / 2 }, MONITOR_DEFAULTTONEAREST); @@ -433,8 +442,10 @@ bool WindowHelper::handleNativeEvent( } } } + if (result) *result = 0; + } else { + if (result) *result = WVR_REDRAW; } - if (result) *result = 0; return true; }