If ListBox::viewport scrollbars are not displayed, mouseWheelMove events are not forwarded to parent.
To fix this issue, I have change this code:
void ListBox::mouseWheelMove (const MouseEvent& e, float wheelIncrementX, float wheelIncrementY)
{
getHorizontalScrollBar()->mouseWheelMove (e, wheelIncrementX, 0);
getVerticalScrollBar()->mouseWheelMove (e, 0, wheelIncrementY);
}
To this one:
void ListBox::mouseWheelMove (const MouseEvent& e, float wheelIncrementX, float wheelIncrementY)
{
ScrollBar* hScroolBar = viewport->getHorizontalScrollBar();
ScrollBar* vScroolBar = viewport->getVerticalScrollBar();
if (hScroolBar->isVisible() || vScroolBar->isVisible())
{
hScroolBar->mouseWheelMove (e, wheelIncrementX, 0);
vScroolBar->mouseWheelMove (e, 0, wheelIncrementY);
}
else // if no viewport scrollbars, forward mouseWheel event to parent.
return Component::mouseWheelMove (e, wheelIncrementX, wheelIncrementY);
}
This fix can be useful when Viewport children contain ListBox components.
I hope my first post can help.