diff options
-rw-r--r-- | src/gui/widgets/itemcontainer.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gui/widgets/itemcontainer.cpp b/src/gui/widgets/itemcontainer.cpp index 19f35ff02..aa254c30b 100644 --- a/src/gui/widgets/itemcontainer.cpp +++ b/src/gui/widgets/itemcontainer.cpp @@ -541,24 +541,27 @@ void ItemContainer::updateMatrix() break; } + int jMult = j * mGridColumns; + const int maxSize = mGridRows * mGridColumns; for (std::vector<ItemIdPair*>::const_iterator iter = sortedItems.begin(), iter_end = sortedItems.end(); iter != iter_end; ++ iter) { - if (j >= mGridRows) + if (jMult >= maxSize) break; - mShowMatrix[j * mGridColumns + i] = (*iter)->mId; + mShowMatrix[jMult + i] = (*iter)->mId; i ++; if (i >= mGridColumns) { i = 0; j ++; + jMult += mGridColumns; } } for (int idx = j * mGridColumns + i; - idx < mGridRows * mGridColumns; idx ++) + idx < maxSize; idx ++) { mShowMatrix[idx] = -1; } |