Description: STileView widgets will always consume mouse wheel input regardless of their settings. This prevents other scrollable slate widgets within the hierarchy from scrolling as intended.
Reproduction Steps:
- Create an SScrollBox widget
- Create and add an STileView widget as a child widget to the SScrollBox.
- Set the .ConsumeMouseWheel flag to EConsumeMouseWheel::Never for the STileView
- Make sure there are enough elements within the STileView to where the scroll bar of the STileView becomes present. (This becomes more apparent when the EListItemAlignment::EvenlySized flag is set within the STileView which adds scaling to the list elements.)
- Scroll to the bottom of the page and then scroll up using the mouse wheel and notice that the STileView gets prioritized when scrolling and the parent SScrollbox no longer scrolls / becomes locked up once the STileView has scrolled to the top.
**Why This Occurs:** This occurs because within the mouse wheel handler for the tile view, the flag for EConsumeMouseWheel::Never is not handled and the AmountScrolledInItems is never returning a value <= 0.0f resulting in the STileView always consuming the input.
The function in which handles this logic can be found here:
**File:** STableViewBase.cpp
**Line:** 479 (As of 4.17.0 release)
**Function:** STableViewBase::OnMouseWheel
**The Solution:** The solution to this bug which worked in testing was to add the EConsumeMouseWheel::Never flag to the switch statement returning FReply::Unhandled. This prevents the STileView from consuming the mouse wheel input and passes it along to the next listener in line allowing the SScrollBox to once again consume the mouse wheel input.
**Alternative Solution:** The goal is to be able to disable to scrollbar functionality within the STileView and leave scrolling up to a parent SScrollbox. In the case there are edge cases preventing the above solution from being added, having an alternative way to disable scrolling within the STileView would be incredibly helpful.
Thanks for reading =)
Cheers!