mirror of
https://github.com/stenzek/duckstation.git
synced 2026-05-21 07:26:42 +00:00
Qt: Fix incorrect fractional window size in MacOS
This commit is contained in:
@@ -173,16 +173,21 @@ void QtUtils::UpdateSurfaceSize(QWidget* widget, WindowInfo* wi)
|
||||
if (std::optional<std::pair<int, int>> size =
|
||||
CocoaTools::GetViewSizeInPixels(reinterpret_cast<void*>(widget->winId())))
|
||||
{
|
||||
qreal device_pixel_ratio = widget->devicePixelRatio();
|
||||
wi->surface_width = static_cast<u16>(size->first);
|
||||
wi->surface_height = static_cast<u16>(size->second);
|
||||
wi->surface_scale = static_cast<float>(widget->devicePixelRatio());
|
||||
if (Core::GetBaseBoolSettingValue("Main", "UseFractionalWindowScale", true))
|
||||
{
|
||||
if (const std::optional<double> real_device_pixel_ratio = CocoaTools::GetViewRealScalingFactor(wi->window_handle))
|
||||
device_pixel_ratio = static_cast<qreal>(real_device_pixel_ratio.value());
|
||||
{
|
||||
const QSize scaled_size =
|
||||
ApplyDevicePixelRatioToSize(widget->size(), static_cast<qreal>(real_device_pixel_ratio.value()));
|
||||
wi->surface_width = static_cast<u16>(scaled_size.width());
|
||||
wi->surface_height = static_cast<u16>(scaled_size.height());
|
||||
wi->surface_scale = static_cast<float>(real_device_pixel_ratio.value());
|
||||
}
|
||||
}
|
||||
|
||||
wi->surface_width = static_cast<u16>(size->first);
|
||||
wi->surface_height = static_cast<u16>(size->second);
|
||||
wi->surface_scale = static_cast<float>(device_pixel_ratio);
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user