From 9be5c46dec87636a1c244d522bfd9501805e92d8 Mon Sep 17 00:00:00 2001 From: Kris-p111 <114744689+Kris-p111@users.noreply.github.com> Date: Tue, 17 Feb 2026 13:41:27 -0500 Subject: [PATCH 1/2] Changed rounding function to only operate after final bounds were computated. --- modules/juce_gui_basics/layout/juce_Grid.cpp | 21 +++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/modules/juce_gui_basics/layout/juce_Grid.cpp b/modules/juce_gui_basics/layout/juce_Grid.cpp index 5d78080d7eae..68d9e23429e1 100644 --- a/modules/juce_gui_basics/layout/juce_Grid.cpp +++ b/modules/juce_gui_basics/layout/juce_Grid.cpp @@ -182,11 +182,9 @@ struct Grid::Helpers const auto absoluteSize = currentItem.getAbsoluteSize (relativeUnit); if (! currentItem.isFractional()) - return roundingFunction (absoluteSize); + return absoluteSize; - const auto result = roundingFunction (absoluteSize - carriedError); - carriedError += result - absoluteSize; - return result; + return absoluteSize; }(); if (currentItem.isFractional()) @@ -194,7 +192,7 @@ struct Grid::Helpers const auto end = start + currentTrackSize; outBounds.emplace_back (start, end); - start = end + roundingFunction (static_cast (gap.pixels)); + start = end + static_cast (gap.pixels); } }; @@ -525,13 +523,12 @@ struct Grid::Helpers jassert (isPositiveAndBelow (correctedColumn, tracks.columns.items.size())); jassert (isPositiveAndBelow (correctedRow, tracks.rows .items.size())); - return - { - calculation.columnTrackBounds[(size_t) correctedColumn].getStart(), - calculation.rowTrackBounds[(size_t) correctedRow].getStart(), - calculation.columnTrackBounds[(size_t) correctedColumn].getEnd() - calculation.columnTrackBounds[(size_t) correctedColumn].getStart(), - calculation.rowTrackBounds[(size_t) correctedRow].getEnd() - calculation.rowTrackBounds[(size_t) correctedRow].getStart() - }; + auto x = roundingFunction(calculation.columnTrackBounds[col].getStart()); + auto y = roundingFunction(calculation.rowTrackBounds[row].getStart()); + auto w = roundingFunction(calculation.columnTrackBounds[col].getEnd() - calculation.columnTrackBounds[col].getStart()); + auto h = roundingFunction(calculation.rowTrackBounds[row].getEnd() - calculation.rowTrackBounds[row].getStart()); + + return { x, y, w, h }; } template From ef0841a5aa06dfdfcbf573727d44d593c3f90373 Mon Sep 17 00:00:00 2001 From: Kris-p111 <114744689+Kris-p111@users.noreply.github.com> Date: Tue, 17 Feb 2026 13:46:04 -0500 Subject: [PATCH 2/2] Changed rounding function to only operate after final layout was computated --- modules/juce_gui_basics/layout/juce_Grid.cpp | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/modules/juce_gui_basics/layout/juce_Grid.cpp b/modules/juce_gui_basics/layout/juce_Grid.cpp index 5d78080d7eae..b345fefb9ddd 100644 --- a/modules/juce_gui_basics/layout/juce_Grid.cpp +++ b/modules/juce_gui_basics/layout/juce_Grid.cpp @@ -182,11 +182,9 @@ struct Grid::Helpers const auto absoluteSize = currentItem.getAbsoluteSize (relativeUnit); if (! currentItem.isFractional()) - return roundingFunction (absoluteSize); + return absoluteSize; - const auto result = roundingFunction (absoluteSize - carriedError); - carriedError += result - absoluteSize; - return result; + return absoluteSize; }(); if (currentItem.isFractional()) @@ -525,13 +523,12 @@ struct Grid::Helpers jassert (isPositiveAndBelow (correctedColumn, tracks.columns.items.size())); jassert (isPositiveAndBelow (correctedRow, tracks.rows .items.size())); - return - { - calculation.columnTrackBounds[(size_t) correctedColumn].getStart(), - calculation.rowTrackBounds[(size_t) correctedRow].getStart(), - calculation.columnTrackBounds[(size_t) correctedColumn].getEnd() - calculation.columnTrackBounds[(size_t) correctedColumn].getStart(), - calculation.rowTrackBounds[(size_t) correctedRow].getEnd() - calculation.rowTrackBounds[(size_t) correctedRow].getStart() - }; + auto x = roundingFunction(calculation.columnTrackBounds[col].getStart()); + auto y = roundingFunction(calculation.rowTrackBounds[row].getStart()); + auto w = roundingFunction(calculation.columnTrackBounds[col].getEnd() - calculation.columnTrackBounds[col].getStart()); + auto h = roundingFunction(calculation.rowTrackBounds[row].getEnd() - calculation.rowTrackBounds[row].getStart()); + + return { x, y, w, h }; } template