diff --git a/ui/platform/win/ui_window_win.cpp b/ui/platform/win/ui_window_win.cpp index da05e37..3206df8 100644 --- a/ui/platform/win/ui_window_win.cpp +++ b/ui/platform/win/ui_window_win.cpp @@ -274,7 +274,9 @@ void WindowHelper::updateCornersRounding() { if (!::Platform::IsWindows11OrGreater()) { return; } - auto preference = _isFullScreen ? kDWMWCP_DONOTROUND : kDWMWCP_ROUND; + const auto preference = (_isFullScreen || _isMaximizedAndTranslucent) + ? kDWMWCP_DONOTROUND + : kDWMWCP_ROUND; DwmSetWindowAttribute( _handle, kDWMWA_WINDOW_CORNER_PREFERENCE, @@ -372,6 +374,14 @@ void WindowHelper::init() { window()->windowState() & ~Qt::WindowMaximized); }); } + if (state != Qt::WindowMinimized) { + const auto is = (state == Qt::WindowMaximized) + && window()->testAttribute(Qt::WA_TranslucentBackground); + if (_isMaximizedAndTranslucent != is) { + _isMaximizedAndTranslucent = is; + updateCornersRounding(); + } + } }; Ui::Connect( window()->windowHandle(), diff --git a/ui/platform/win/ui_window_win.h b/ui/platform/win/ui_window_win.h index d3ec58d..d29fc11 100644 --- a/ui/platform/win/ui_window_win.h +++ b/ui/platform/win/ui_window_win.h @@ -83,6 +83,7 @@ private: QMargins _marginsDelta; bool _updatingMargins = false; bool _isFullScreen = false; + bool _isMaximizedAndTranslucent = false; };