Reputation: 2262
When I tap on a control near the bottom edge of the screen, the MouseDown event is fired with a delay of around 800 ms. This makes my app feel very sluggish. I discovered however, that if I tap while moving my finger horizontally (swipe), the MouseDown event is fired immediately.
I know that iOS has a default delay of 300 ms in its Gesture Recognizer to detect if the user wanted to swipe up the iOS control panel (the one where you can turn on/off the airplane mode, wifi, bluetooth, etc). Somehow Delphi turned 300 ms into 800 ms...
The native solution to remove the 300 ms delay seems to be to use UIScreenEdgePanGestureRecognizer
, which I did not find anywhere in the Delphi FMX sourcecode, and I am not sure it will solve it since Delphi somehow increased the delay, which suggests something else is going on.
How do I remove the 800 ms delay for the MouseDown?
PS. I use Delphi 10 upd 1, X code 7.2 on OS X Yosemite and iOS 9.2.1
Upvotes: 4
Views: 151
Reputation: 2262
It is not yet supported by Delphi (as of Delphi 11), but luckily David Nottage has fixed this in his KastriFree
library. The direct link to the demo app that implements the solution is here:
https://github.com/DelphiWorlds/KastriFree/tree/master/Demos/iOSGestureLag
Upvotes: 1