Enhanced Input Action are not registered from parent blueprint class

Hello,

We are having an issue that seems to come from 5.5, any enhanced input action registered in a Widget Blueprint graph will not trigger if it’s inside a parent class of the used widget.

You can see the steps to reproduce above but they should be easily reproducable. This caused a few things to break on our project since we use parent widget to group logic together.

Let us know if you need more info.

Thanks,

Seb

Steps to Reproduce

  1. Add a binding to any enhance input action inside a Widget Blueprint class A
    1. On that input being triggered print node or add a breakpoint in blueprint
  2. Test that pressing the input triggers the print/debug
  3. Create a child of that widget blueprint B
  4. Notice that the action is not triggered anymore when using the child class B instead of A directly
  5. Move the same enhanced input action blueprint to the child class B
  6. Observe that the event works now

Hi there,

I can confirm that I can reproduce the behaviour you are seeing.

This is inconsistent with how Actors currently function, and is also a regression from 5.4. I believe it was introduced in this commit. It seems as though child widgets that have parents with Enhanced Input bindings do not currently get bAutomaticallyRegisterInputOnConstruction set correctly (at least, with an empty event graph).

I will go ahead and submit a bug report for this issue and circle back here to provide an issue tracker link when one is available.

In the meantime it is possible to workaround this issue. If you create a dummy Input Action and bind this in your child widget, as long as that dummy binding is plugged into some other node then the child widget will be compiled with bAutomaticallyRegisterInputOnConstruction set to true and all parent bindings will function correctly. An example event graph for the child might look like the following:

[Image Removed]

Thanks.

Hi there,

You will be able to find the issue tracker link here once it is made public.

Thanks.

Hey @HaydenPrismatic I found a new related issue to this problem.

Some widget will not get the variable bAutomaticallyRegisterInputOnConstruction changed if they are an instance inside another widget.

Let’s take a simple repro example:

  1. Create a new widget with an empty graph
  2. Add that widget inside the hierarchy of any other widget in your UI
  3. Now save and compile everything and test that your widget is there.
  4. Modify the initally empty graph to add a Enhanced input action trigger node (to react to any input)
  5. Test that the input works if you instantiate directly that widget but not in the one already in the hierarchy.

This is a pretty big issue as we might add/remove enhance input trigger node from widget that are already parts of hierarchy.

Regards,
Seb