Disable Windows 11 rounded corners in FullScreen RpWindow.
This commit is contained in:
parent
e5c8a6ebc4
commit
d5d2ccb467
2 changed files with 15 additions and 7 deletions
|
|
@ -30,6 +30,7 @@ namespace Platform {
|
|||
namespace {
|
||||
|
||||
constexpr auto kDWMWCP_ROUND = DWORD(2);
|
||||
constexpr auto kDWMWCP_DONOTROUND = DWORD(1);
|
||||
constexpr auto kDWMWA_WINDOW_CORNER_PREFERENCE = DWORD(33);
|
||||
constexpr auto kDWMWA_CAPTION_COLOR = DWORD(35);
|
||||
constexpr auto kDWMWA_TEXT_COLOR = DWORD(36);
|
||||
|
|
@ -230,15 +231,19 @@ void WindowHelper::initialShadowUpdate() {
|
|||
} else {
|
||||
_shadow->update(Change::Moved | Change::Resized | Change::Shown);
|
||||
}
|
||||
updateCornersRounding();
|
||||
}
|
||||
|
||||
if (::Platform::IsWindows11OrGreater()) {
|
||||
auto preference = kDWMWCP_ROUND;
|
||||
DwmSetWindowAttribute(
|
||||
_handle,
|
||||
kDWMWA_WINDOW_CORNER_PREFERENCE,
|
||||
&preference,
|
||||
sizeof(preference));
|
||||
void WindowHelper::updateCornersRounding() {
|
||||
if (!::Platform::IsWindows11OrGreater()) {
|
||||
return;
|
||||
}
|
||||
auto preference = _isFullScreen ? kDWMWCP_DONOTROUND : kDWMWCP_ROUND;
|
||||
DwmSetWindowAttribute(
|
||||
_handle,
|
||||
kDWMWA_WINDOW_CORNER_PREFERENCE,
|
||||
&preference,
|
||||
sizeof(preference));
|
||||
}
|
||||
|
||||
void WindowHelper::setMinimumSize(QSize size) {
|
||||
|
|
@ -261,6 +266,7 @@ void WindowHelper::showFullScreen() {
|
|||
if (!_isFullScreen) {
|
||||
_isFullScreen = true;
|
||||
updateMargins();
|
||||
updateCornersRounding();
|
||||
}
|
||||
window()->showFullScreen();
|
||||
}
|
||||
|
|
@ -270,6 +276,7 @@ void WindowHelper::showNormal() {
|
|||
if (_isFullScreen) {
|
||||
_isFullScreen = false;
|
||||
updateMargins();
|
||||
updateCornersRounding();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ private:
|
|||
void updateSystemMenu();
|
||||
void updateSystemMenu(Qt::WindowState state);
|
||||
void initialShadowUpdate();
|
||||
void updateCornersRounding();
|
||||
void fixMaximizedWindow();
|
||||
[[nodiscard]] bool handleNativeEvent(
|
||||
UINT msg,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue