Widget interaction component sends two click events per call on android (daydream controller)

I believe this is a bug, but it may be me doing something wrong with daydream.

I’m using a widget interaction component driven by a motion controller in a project. On an input event, I simulate the press and release of mouse button one. On oculus, this functions as expected - I point the laser at a button widget in worldspace and click on my button, performing the bound task once.

When I package for google daydream (ATSC) when I press the button on my controller that simulates the press and release of mouse button 1 via the interaction component, two click events are registered on the button i’ve simulated the click over.

Example: My button functions like a light switch essentially. Pressing the button once turns the ‘light’ on, pressing a second time turns it off.
On oculus (vr preview) this works as expected. On Daydream, the ‘light’ is flicked on then off instantly. Debug text confirms the click event is being called twice.

I read a different, earlier bug report stating that when using the widget interaction component with touch events buttons had to be pressed twice, and that bug has been marked as fixed. I’m wondering if the fix for that was to simulate two clicks when on android or something?

I am temporarily hacking around this on daydream by only acting on every second click event.

Engine version is Binary 4.14.0

Repro steps

  1. Create a new vr project
  2. Create a button widget that toggles between red and green on a click event. starting color red.
  3. Put this button in a widget scene component
  4. Using widget interaction component, simulate mouse button 1 press and then release on daydream controller/oculus button press while aiming at the widget onscreen in worldspace etc

Expected result (will get on oculus): Button toggles colour when click is simulated
Result on daydream: Button will flick to new colour then back to previous when click is simulated

But yeah if anyone needs more information happy to help. I’m aware that I could just be doing something stupid or wrong (having spent little time on android in the past) so I apologize in advance if this is user error.

Try using DoOnce.

This would be another valid way to hack around the issue for sure, but this shouldn’t be required at all as far as I can tell (considering the entire flow is single-event based - triggered by a button press event)

I get the same issue with touch input on windows touchscreen since 4.14

Hello,

I was unable to reproduce this issue on our end. I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you reproduce this issue in a clean project in the latest version of the engine?
  2. If so, could you provide a more detailed list of steps to reproduce this issue on our end (including any small steps that may have been left out of your original post)
  3. Could you provide screen shots of any settings/blueprints/widgets that may be involved with this issue?
  4. What device are you using when experiencing this issue?
  5. What is the current OS being run on the device?
  6. Does occur when launching on and/or packaging out?
  7. Does this issue only occur with the daydream controller?

Hello,

We have not heard back from you in a few days, so we are marking this post as Resolved for tracking purposes. If you are still experiencing the issue you reported, please respond to this message with additional information and we will follow up.

Thanks,