Skip to content

Commit

Permalink
Fix storing invalid item height values in ItemList
Browse files Browse the repository at this point in the history
The height of the last N items is incorrectly overwritten with
the max height of first row (N = number of columns). This happen
in the first iteration of the while loop. Moving this code inside
if (all_fit) makes sure the last rows height is only updated at
the end when max height (max_h) is calculated for the last row.
  • Loading branch information
coumcashier authored and YuriSizov committed Nov 10, 2023
1 parent bdd9034 commit 1533292
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions scene/gui/item_list.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1431,11 +1431,11 @@ void ItemList::force_update_list_size() {
}
}

for (int j = items.size() - 1; j >= 0 && col > 0; j--, col--) {
items.write[j].rect_cache.size.y = max_h;
}

if (all_fit) {
for (int j = items.size() - 1; j >= 0 && col > 0; j--, col--) {
items.write[j].rect_cache.size.y = max_h;
}

float page = MAX(0, size.height - theme_cache.panel_style->get_minimum_size().height);
float max = MAX(page, ofs.y + max_h);
if (auto_height) {
Expand Down

0 comments on commit 1533292

Please sign in to comment.