You can forward the input events from one of the Viewport
's parent nodes with the Viewport.input(InputEvent local_event)
function. In the parent node:
onready var viewport = get_node("Viewport")
func _ready():
set_process_input(true)
func _input(event):
viewport.input(event)
You might also have to offset the position of mouse events if your ViewportSprite
isn't in the top left corner.