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); + } + } } } }