[Bf-blender-cvs] [c9c332f4224] asset-browser-grid-view: Fix failed assert with small region size
Julian Eisel
noreply at git.blender.org
Mon Feb 14 17:57:11 CET 2022
Commit: c9c332f42240f488ddb568041ba376ed37efd969
Author: Julian Eisel
Date: Mon Feb 14 16:15:29 2022 +0100
Branches: asset-browser-grid-view
https://developer.blender.org/rBc9c332f42240f488ddb568041ba376ed37efd969
Fix failed assert with small region size
If there's not enough space to draw at least one item per row, there would be a
failed assert in the code to skip drawing items scrolled out of view.
===================================================================
M source/blender/editors/interface/grid_view.cc
===================================================================
diff --git a/source/blender/editors/interface/grid_view.cc b/source/blender/editors/interface/grid_view.cc
index 47b654ba583..85c3a32c10f 100644
--- a/source/blender/editors/interface/grid_view.cc
+++ b/source/blender/editors/interface/grid_view.cc
@@ -184,9 +184,10 @@ IndexRange BuildOnlyVisibleButtonsHelper::get_visible_range() const
}
const float view_height = BLI_rctf_size_y(&v2d_.cur);
- const int count_rows_in_view = round_fl_to_int(view_height / style_.tile_height);
+ const int count_rows_in_view = std::max(round_fl_to_int(view_height / style_.tile_height), 1);
max_items_in_view = (count_rows_in_view + 1) * cols_per_row_;
+ BLI_assert(max_items_in_view > 0);
return IndexRange(first_idx_in_view, max_items_in_view);
}
@@ -285,7 +286,7 @@ void GridViewLayoutBuilder::build_from_view(const AbstractGridView &grid_view,
uiLayout &layout = *uiLayoutColumn(current_layout(), false);
const GridViewStyle &style = grid_view.get_style();
- const int cols_per_row = uiLayoutGetWidth(&layout) / style.tile_width;
+ const int cols_per_row = std::max(uiLayoutGetWidth(&layout) / style.tile_width, 1);
BuildOnlyVisibleButtonsHelper build_visible_helper(v2d, grid_view, cols_per_row);
More information about the Bf-blender-cvs
mailing list