ScrollBox doesn't always consume mouse wheel

  1. Create a player controller with a print string attached to the mouse wheel.
  2. Create a Blueprint Widget.
  3. Add a ScrollBox to it.
  4. Add a WrapBox to the ScrollBox.
  5. Add some widgets to the WrapBox so you have something to scroll through.
  6. Set Consume Mouse Wheel to Always on the ScrollBox.
  7. Run the application and notice that the mouse wheel is correctly consumed when scrolling.
  8. Go back to the WrapBox and remove a few widgets from it so it no longer needs to be scrolled.
  9. Run the application and notice the mouse wheel is no longer being correctly consumed, even though it is set to Always. It should only allow the mouse wheel through in this case if it is set to When Scrolling Possible.
  10. Go back to the ScrollBox and tick Always Show Scrollbar.
  11. Run the application and notice the scroll bar is not being displayed and the mouse wheel is still not being consumed.

The expected result is that the mouse wheel should always be consumed, when Consume Mouse Wheel is set to Always, when attempting to scroll in a scroll box whether there is a scroll bar present or not.

In addition, I would expect the scroll bar to stay always visible if Always Show Scrollbar is ticked.

Hello wilberolive,

I was able to reproduce these issue on our end. I have written up reports and I have submitted them to the developers for further consideration. I have provided links to the public tracker. Please feel free to use the links provided for future updates. Thank you for your time and information.

Link(consume mouse issue): Unreal Engine Issues and Bug Tracker (UE-43727)

Link: (Always show scrollbar issue): Unreal Engine Issues and Bug Tracker (UE-43728)

As a note: Please be sure to make a post for each issue separately for tracking purposes from now on.

I found this issue too and have made a small engine mod in SScrollBox::OnMouseWheel() which seems to fix it. Just add a check to see if the ConsumeMouseWheel is set to Always and if so return FReply::Handled();

I found this issue too and have made a small engine mod in SScrollBox::OnMouseWheel() which seems to fix it. Just add a check to see if the ConsumeMouseWheel is set to Always and if so return FReply::Handled();