I suppose it would need another setting for that, and probably a different value to the single-step size, as you might actually want them to be different.
…though personally, I’d probably do the snapping separately from the scrollbar. It looks a bit nicer to keep the scrollbar motion smooth, and snap the items that it’s adjusting. Like the scrollbars on iTunes.
as you’ve said I think the snapping handling should belong to the viewport I already do it in a custom component that uses a scrollbar directly to switch between pages.
however having an extra option to quantize the display position could also be useful.
Always better to leave your scrollbar position as a double, and snap your content instead. You need to consider what happens with continuous or inertial scroll wheels, etc.