mirror of
https://github.com/glfw/glfw.git
synced 2024-11-22 13:04:35 +00:00
Wayland: Emit size event when setting aspect ratio
(cherry picked from commit c1a79c1c41
)
This commit is contained in:
parent
a6e3efbafc
commit
1de73c0dc5
@ -2039,17 +2039,26 @@ void _glfwPlatformSetWindowAspectRatio(_GLFWwindow* window,
|
||||
if (window->wl.maximized || window->wl.fullscreen)
|
||||
return;
|
||||
|
||||
int width = window->wl.width, height = window->wl.height;
|
||||
|
||||
if (numer != GLFW_DONT_CARE && denom != GLFW_DONT_CARE)
|
||||
{
|
||||
const float aspectRatio = (float) window->wl.width / (float) window->wl.height;
|
||||
const float aspectRatio = (float) width / (float) height;
|
||||
const float targetRatio = (float) numer / (float) denom;
|
||||
if (aspectRatio < targetRatio)
|
||||
window->wl.height = window->wl.width / targetRatio;
|
||||
height /= targetRatio;
|
||||
else if (aspectRatio > targetRatio)
|
||||
window->wl.width = window->wl.height * targetRatio;
|
||||
width *= targetRatio;
|
||||
}
|
||||
|
||||
if (width != window->wl.width || height != window->wl.height)
|
||||
{
|
||||
window->wl.width = width;
|
||||
window->wl.height = height;
|
||||
resizeWindow(window);
|
||||
|
||||
_glfwInputWindowSize(window, width, height);
|
||||
|
||||
if (window->wl.visible)
|
||||
_glfwInputWindowDamage(window);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user