From 97112f853f7f1841aed7edb3b712d705cc56efe6 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Thu, 31 Aug 2023 18:26:49 +0800 Subject: [PATCH] win: allow square corner on win11 --- include/FramelessHelper/Core/framelesshelpercore_global.h | 3 ++- src/core/framelessconfig.cpp | 3 ++- src/core/framelesshelper_win.cpp | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/FramelessHelper/Core/framelesshelpercore_global.h b/include/FramelessHelper/Core/framelesshelpercore_global.h index 34e58712..0073411d 100644 --- a/include/FramelessHelper/Core/framelesshelpercore_global.h +++ b/include/FramelessHelper/Core/framelesshelpercore_global.h @@ -328,7 +328,8 @@ enum class Option : quint8 ForceNonNativeBackgroundBlur, DisableLazyInitializationForMicaMaterial, ForceNativeBackgroundBlur, - Last = ForceNativeBackgroundBlur + WindowUseSquareCorners, + Last = WindowUseSquareCorners }; Q_ENUM_NS(Option) diff --git a/src/core/framelessconfig.cpp b/src/core/framelessconfig.cpp index 379788d4..fdfaf736 100644 --- a/src/core/framelessconfig.cpp +++ b/src/core/framelessconfig.cpp @@ -65,7 +65,8 @@ static constexpr const std::array(Option: FramelessConfigEntry{ "FRAMELESSHELPER_ENABLE_BLUR_BEHIND_WINDOW", "Options/EnableBlurBehindWindow" }, FramelessConfigEntry{ "FRAMELESSHELPER_FORCE_NON_NATIVE_BACKGROUND_BLUR", "Options/ForceNonNativeBackgroundBlur" }, FramelessConfigEntry{ "FRAMELESSHELPER_DISABLE_LAZY_INITIALIZATION_FOR_MICA_MATERIAL", "Options/DisableLazyInitializationForMicaMaterial" }, - FramelessConfigEntry{ "FRAMELESSHELPER_FORCE_NATIVE_BACKGROUND_BLUR", "Options/ForceNativeBackgroundBlur" } + FramelessConfigEntry{ "FRAMELESSHELPER_FORCE_NATIVE_BACKGROUND_BLUR", "Options/ForceNativeBackgroundBlur" }, + FramelessConfigEntry{ "FRAMELESSHELPER_WINDOW_USE_SQUARE_CORNERS", "Options/WindowUseSquareCorners" } }; static constexpr const auto OptionCount = std::size(FramelessOptionsTable); diff --git a/src/core/framelesshelper_win.cpp b/src/core/framelesshelper_win.cpp index e492fa4e..78ee8d61 100644 --- a/src/core/framelesshelper_win.cpp +++ b/src/core/framelesshelper_win.cpp @@ -261,7 +261,7 @@ void FramelessHelperWin::addWindow(FramelessParamsConst params) if (WindowsVersionHelper::isWin10RS5OrGreater()) { const bool dark = (FramelessManager::instance()->systemTheme() == SystemTheme::Dark); const auto isWidget = [params]() -> bool { - const auto widget = params->getWidgetHandle(); + const QObject *widget = params->getWidgetHandle(); return (widget && widget->isWidgetType()); }(); if (!isWidget) { @@ -270,6 +270,11 @@ void FramelessHelperWin::addWindow(FramelessParamsConst params) std::ignore = Utils::updateGlobalWin32ControlsTheme(windowId, dark); } std::ignore = Utils::refreshWin32ThemeResources(windowId, dark); + if (WindowsVersionHelper::isWin11OrGreater()) { + if (FramelessConfig::instance()->isSet(Option::WindowUseSquareCorners)) { + std::ignore = Utils::setCornerStyleForWindow(windowId, WindowCornerStyle::Square); + } + } } } }