I have a scrollbox which acts like a container for 3 “pages”. That is, when I click on a button in the interface, I want that scrollbox to scroll exactly 1080 units, which is the size of a page. That part works fine. But I only want it to scroll in those discrete steps. I don’t want the user to be able to drag to scroll 2 and a half page for example.
There is an option to “Allow right click drag scroll”, but there’s no such option for the left mouse button. Visibility: Self Hit Test Invisible doesn’t work to disable drag scrolling.
In my case, I didn’t need the scroll indicator, so I was able to solve it by simply replacing the scrollbox with a canvas and use canvas slot offset instead of scroll offset.
I found another way to do this using scroll boxes, which might be helpful if anyone is looking for this after they have implemented scroll boxes instead of a canvas with some offset code.
I added an image that is completely filled with 100% alpha (just a transparent image) in a canvas panel that wraps the scroll box and this new image. I set the z offset of the image to a greater z offset than the scroll box, and I can completely block out all event grabbing because all events are passed to the image.