Stopping UMG buttons from consuming input

Hi!

I have a mobile game with an interactive UI done in UMG and some game logic that reacts to input underneath.

I’m binding input events in my PlayerController like this:

InputComponent->BindTouch(EInputEvent::IE_Pressed, this, &AHW_PlayerController::TouchBegin);
InputComponent->BindTouch(EInputEvent::IE_Repeat, this, &AHW_PlayerController::TouchMove);
InputComponent->BindTouch(EInputEvent::IE_Released, this, &AHW_PlayerController::TouchEnd);

The problem is that buttons in the UI block input events from reaching the controller. So if a player starts dragging in the gameplay area but lets go while on top of a button my controller never gets a TouchEnd event. Likewise if a player starts dragging while on a button I never get a TouchBegin etc.

Is there a way to remedy this? I.e. make the buttons not consume input events, but have them still react like normal buttons firing their own OnClick logic etc.

Thanks!

+1 Would also like to know this.

Same problem here. Works on Windows but as soon as I deploy it on Android it seems like I don’t even get proper screen coordinates for the touch event and therefore my object is spawned at the location I pressed last on the screen which is no umg element.

Also experiencing this in UE4.21.1. I’m trying to use controller events to auto-detect Gamepad or Keyboard/Mouse, but it appears the buttons consume input so I can’t update my state control via the input events for keyboard/mouse keys.