When the user scrolls the viewport, events happen in the viewport()
widget of the scroll area. If the requested scrolling action is possible, the event gets accepted and doesn't propagate to the scroll area itself, so you can't detect it.
To fix this, simply install event filter to the viewport()
widget instead.