Skip to content

Commit

Permalink
ScrollableListWidget: Fix negative calculated dimensions handling
Browse files Browse the repository at this point in the history
  • Loading branch information
past-due committed Jun 18, 2024
1 parent 12dae4e commit 5707a8b
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions lib/widget/scrollablelist.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,8 @@ void ScrollableListWidget::updateLayout()
layoutDirty = false;

auto listViewWidthWithoutScrollBar = calculateListViewWidth();
auto listViewWidthWithScrollBar = listViewWidthWithoutScrollBar - scrollBar->width();
auto widthOfScrollbar = scrollBar->width();
auto listViewWidthWithScrollBar = (widthOfScrollbar >= 0 && listViewWidthWithoutScrollBar > static_cast<uint32_t>(widthOfScrollbar)) ? listViewWidthWithoutScrollBar - static_cast<uint32_t>(widthOfScrollbar) : 0;
auto listViewHeight = calculateListViewHeight();

resizeChildren(listViewWidthWithScrollBar);
Expand Down Expand Up @@ -157,12 +158,14 @@ void ScrollableListWidget::resizeChildren(uint32_t width)

uint32_t ScrollableListWidget::calculateListViewHeight() const
{
return height() - padding.top - padding.bottom;
int32_t result = height() - static_cast<int32_t>(padding.top) - static_cast<int32_t>(padding.bottom);
return (result > 0) ? static_cast<uint32_t>(result) : 0;
}

uint32_t ScrollableListWidget::calculateListViewWidth() const
{
return width() - padding.left - padding.right;
int32_t result = width() - padding.left - padding.right;
return (result > 0) ? static_cast<uint32_t>(result) : 0;
}

bool ScrollableListWidget::processClickRecursive(W_CONTEXT *psContext, WIDGET_KEY key, bool wasPressed)
Expand Down

0 comments on commit 5707a8b

Please sign in to comment.