[AlwaysOnTop] Corners scaling (#20352)

This commit is contained in:
Seraphima Zykova
2022-09-29 15:11:01 +02:00
committed by GitHub
parent 4e202e4523
commit 1ecaf039ca
9 changed files with 85 additions and 19 deletions

View File

@@ -5,6 +5,7 @@
#include "winrt/Windows.Foundation.h"
#include <FrameDrawer.h>
#include <ScalingUtils.h>
#include <Settings.h>
#include <WindowCornersUtil.h>
@@ -192,13 +193,15 @@ void WindowBorder::UpdateBorderProperties() const
color = AlwaysOnTopSettings::settings().frameColor;
}
int cornerRadius = 0;
float scalingFactor = ScalingUtils::ScalingFactor(m_trackingWindow);
float thickness = AlwaysOnTopSettings::settings().frameThickness * scalingFactor;
float cornerRadius = 0.0;
if (AlwaysOnTopSettings::settings().roundCornersEnabled)
{
cornerRadius = WindowBordersUtils::AreCornersRounded(m_trackingWindow) ? 8 : 0;
cornerRadius = WindowCornerUtils::CornersRadius(m_trackingWindow) * scalingFactor;
}
m_frameDrawer->SetBorderRect(frameRect, color, AlwaysOnTopSettings::settings().frameThickness, cornerRadius);
m_frameDrawer->SetBorderRect(frameRect, color, static_cast<int>(thickness), cornerRadius);
}
LRESULT WindowBorder::WndProc(UINT message, WPARAM wparam, LPARAM lparam) noexcept