Skip to content

Commit 02a36c7

Browse files
committed
Qt: Prefer size from native OS over Qt
The latter is wrong when a resize fails.
1 parent c4ee79b commit 02a36c7

File tree

1 file changed

+12
-20
lines changed

1 file changed

+12
-20
lines changed

src/duckstation-qt/qtwindowinfo.cpp

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -131,31 +131,23 @@ void QtUtils::UpdateSurfaceSize(QWidget* widget, WindowInfo* wi)
131131
wi->surface_width = static_cast<u16>(rc.right - rc.left);
132132
wi->surface_height = static_cast<u16>(rc.bottom - rc.top);
133133
wi->surface_scale = static_cast<float>(device_pixel_ratio);
134+
return;
134135
}
135136
#elif defined(__APPLE__)
136-
if (Core::GetBaseBoolSettingValue("Main", "UseFractionalWindowScale", true))
137+
if (std::optional<std::pair<int, int>> size =
138+
CocoaTools::GetViewSizeInPixels(reinterpret_cast<void*>(widget->winId())))
137139
{
138-
if (const std::optional<double> real_device_pixel_ratio = CocoaTools::GetViewRealScalingFactor(wi->window_handle))
140+
qreal device_pixel_ratio = widget->devicePixelRatio();
141+
if (Core::GetBaseBoolSettingValue("Main", "UseFractionalWindowScale", true))
139142
{
140-
const qreal device_pixel_ratio = static_cast<qreal>(real_device_pixel_ratio.value());
141-
const QSize scaled_size = ApplyDevicePixelRatioToSize(widget->size(), device_pixel_ratio);
142-
wi->surface_width = static_cast<u16>(scaled_size.width());
143-
wi->surface_height = static_cast<u16>(scaled_size.height());
144-
wi->surface_scale = static_cast<float>(device_pixel_ratio);
145-
return;
146-
}
147-
}
148-
else
149-
{
150-
if (std::optional<std::pair<int, int>> size =
151-
CocoaTools::GetViewSizeInPixels(reinterpret_cast<void*>(widget->winId())))
152-
{
153-
const qreal device_pixel_ratio = widget->devicePixelRatio();
154-
wi->surface_width = static_cast<u16>(size->first);
155-
wi->surface_height = static_cast<u16>(size->second);
156-
wi->surface_scale = static_cast<float>(device_pixel_ratio);
157-
return;
143+
if (const std::optional<double> real_device_pixel_ratio = CocoaTools::GetViewRealScalingFactor(wi->window_handle))
144+
device_pixel_ratio = static_cast<qreal>(real_device_pixel_ratio.value());
158145
}
146+
147+
wi->surface_width = static_cast<u16>(size->first);
148+
wi->surface_height = static_cast<u16>(size->second);
149+
wi->surface_scale = static_cast<float>(device_pixel_ratio);
150+
return;
159151
}
160152
#endif
161153

0 commit comments

Comments
 (0)