Apply scale keeping window center in place.

This commit is contained in:
John Preston 2021-09-16 13:16:13 +03:00
parent de9b21e436
commit 703ea9aacd

View file

@ -445,10 +445,15 @@ Core::WindowPosition MainWindow::positionFromSettings() const {
return position; return position;
} }
const auto scaleFactor = cScale() / float64(position.scale); const auto scaleFactor = cScale() / float64(position.scale);
position.x *= scaleFactor; if (scaleFactor != 1.) {
position.y *= scaleFactor; // Change scale while keeping the position center in place.
position.w *= scaleFactor; position.x += position.w / 2;
position.h *= scaleFactor; position.y += position.h / 2;
position.w *= scaleFactor;
position.h *= scaleFactor;
position.x -= position.w / 2;
position.y -= position.h / 2;
}
return position; return position;
} }