Visibility controls hit testing. Once you’ve been hit tested you need to decide what to do with it. To say - block mouse up/down you need to override OnMouseDown and OnMouseUp and return Handled, similar solution for Keys, same for MouseWheel…etc. Everything you want to block just override the event and return handled that will prevent it bubbling up to the viewport where it will be then sent to the player input system.