From 7fa69ac27fa04a4b1ae650f2403976cfc6251972 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Sat, 24 Oct 2026 12:36:07 +0200 Subject: [PATCH] UI: Center views inside their margins Centering gravity centered in the whole cell, ignoring the margins, so a view with uneven margins ended up off center. Co-Authored-By: Claude Opus 5.5 (1M context) --- Common/UI/ViewGroup.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Common/UI/ViewGroup.cpp b/Common/UI/ViewGroup.cpp index eec25e53da..15c90006a1 100644 --- a/Common/UI/ViewGroup.cpp +++ b/Common/UI/ViewGroup.cpp @@ -31,14 +31,14 @@ void ApplyGravity(const Bounds &outer, const Margins &margins, float w, float h, switch ((Gravity)((int)gravity & (int)Gravity::G_HORIZMASK)) { case Gravity::G_LEFT: inner.x = outer.x + margins.left; break; case Gravity::G_RIGHT: inner.x = outer.x + outer.w - w - margins.right; break; - case Gravity::G_HCENTER: inner.x = outer.x + (outer.w - w) * 0.5f; break; + case Gravity::G_HCENTER: inner.x = outer.x + margins.left + (outer.w - margins.horiz() - w) * 0.5f; break; default: break; } switch ((Gravity)((int)gravity & (int)Gravity::G_VERTMASK)) { case Gravity::G_TOP: inner.y = outer.y + margins.top; break; case Gravity::G_BOTTOM: inner.y = outer.y + outer.h - h - margins.bottom; break; - case Gravity::G_VCENTER: inner.y = outer.y + (outer.h - h) * 0.5f; break; + case Gravity::G_VCENTER: inner.y = outer.y + margins.top + (outer.h - margins.vert() - h) * 0.5f; break; default: break; } }