WIndows 10 Touch Button Issue


#1

Using the freshly updated windows 10 on my surface device I get a problem with Juce TextButtons. They don’t react to the first tap on them. It’s like they first need to get focus or something. Subsequent touches trigger the buttons correctly, but every time a new button is tapped, it requires two taps to trigger an action which is quite annoying. It looks like the first touch is doing something, just not everything. On my custom components I see normal mouse events coming in, so I believe there might be a bug in the Juce TextButton/Button class somewhere.
I see the problem with the latest just development tip on the just updated windows 10. It happens in the Juce Demo and especially Alert Dialogs are a source of constant frustration like this.

Is anyone else seeing the same issue?


#2

Hi pflugshaupt,

We’re investigating this at the moment and working on a fix.

Ed


#3

This should be fixed on develop now.

Ed


#4

Thanks! This fixed the issue for me.


#5

I correct myself. The issue unfortunately is not fully fixed. Currently I see new problems. This all happens in the JuceDemo compiled in MSVC2015 with the Juce tip in Debug Configuration.

  • When switching input devices (touch to mouse), sometimes events appear to happen at the last location of the device no longer in use.
  • Very short taps on TextButtons sometimes still do not register. A prime example is the “Click to change colour…” button on the JuceDemo widgets/buttons page. Maybe problems are also caused by windows moving the mouse cursor to the touch position.
  • If the pen hovers over a button and then is removed from the device while staying in position, the hover state of the button does not get cancelled.
  • Drag and Drop seems broken with Touch everywhere. It’s very visible in the JuceDemo ValueTree example.

#6

Thanks for the info, we’re taking another look at it and should hopefully have a fix soon.


#7

Fix is up on develop now.


#8

Thank you!

I can confirm drag and drop is fixed. And input device switches appear to work better now. However. the initial issue of buttons not reacting to very short taps is back. Prime examples in the JuceDemo are still the color chooser button as well as the tab buttons of the widget demo. It happens on initial taps, when windows first needs to move the mouse cursor to the tap position. The windows touch indicator is visible for these brief taps, so I’m sure I tap correctly. To make it happen more frequently first tap somewhere else and then as briefly as possible on one of the tab buttons.

I guess the windows touch to mouse translation mechanism is interfering with Juce touch handling.

If I remember correctly the winapi always sends the first touch twice. once as touch and once as “emulated” mouse event - frequently wrecking havoc in touch applications.