@@ -39,6 +39,9 @@ class _GestureDetectorControlState extends State<GestureDetectorControl> {
3939 bool _rightPanActive = false ;
4040 int _rightPanTimestamp = DateTime .now ().millisecondsSinceEpoch;
4141 Offset _rightPanStart = Offset .zero;
42+ TapDownDetails ? _lastTapDownDetails;
43+ TapDownDetails ? _lastSecondaryTapDownDetails;
44+ TapDownDetails ? _lastDoubleTapDownDetails;
4245
4346 @override
4447 void initState () {
@@ -68,13 +71,21 @@ class _GestureDetectorControlState extends State<GestureDetectorControl> {
6871 widget.control.getBool ("on_secondary_tap_down" , false )! ;
6972 var onSecondaryTapUp =
7073 widget.control.getBool ("on_secondary_tap_up" , false )! ;
74+ var onTertiaryTapDown =
75+ widget.control.getBool ("on_tertiary_tap_down" , false )! ;
76+ var onTertiaryTapUp =
77+ widget.control.getBool ("on_tertiary_tap_up" , false )! ;
7178 var onLongPressStart =
7279 widget.control.getBool ("on_long_press_start" , false )! ;
7380 var onLongPressEnd = widget.control.getBool ("on_long_press_end" , false )! ;
7481 var onSecondaryLongPressStart =
7582 widget.control.getBool ("on_secondary_long_press_start" , false )! ;
7683 var onSecondaryLongPressEnd =
7784 widget.control.getBool ("on_secondary_long_press_end" , false )! ;
85+ var onTertiaryLongPressStart =
86+ widget.control.getBool ("on_tertiary_long_press_start" , false )! ;
87+ var onTertiaryLongPressEnd =
88+ widget.control.getBool ("on_tertiary_long_press_end" , false )! ;
7889 var onDoubleTap = widget.control.getBool ("on_double_tap" , false )! ;
7990 var onDoubleTapDown = widget.control.getBool ("on_double_tap_down" , false )! ;
8091 var onHorizontalDragStart =
@@ -185,10 +196,14 @@ class _GestureDetectorControlState extends State<GestureDetectorControl> {
185196 onSecondaryTap |
186197 onSecondaryTapDown |
187198 onSecondaryTapUp |
199+ onTertiaryTapDown |
200+ onTertiaryTapUp |
188201 onLongPressStart |
189202 onLongPressEnd |
190203 onSecondaryLongPressStart |
191204 onSecondaryLongPressEnd |
205+ onTertiaryLongPressStart |
206+ onTertiaryLongPressEnd |
192207 onDoubleTap |
193208 onDoubleTapDown |
194209 onHorizontalDragStart |
@@ -217,30 +232,48 @@ class _GestureDetectorControlState extends State<GestureDetectorControl> {
217232 .nonNulls
218233 .toSet ();
219234 }(),
220- onTap: onTap ? () => widget.control.triggerEvent ("tap" ) : null ,
221- onTapDown: onTapDown
222- ? (TapDownDetails details) {
223- widget.control.triggerEvent ("tap_down" , details.toMap ());
224- }
235+ onTap: onTap
236+ ? () => widget.control
237+ .triggerEvent ("tap" , _lastTapDownDetails? .toMap ())
225238 : null ,
239+ onTapDown: (TapDownDetails details) {
240+ if (onTapDown) {
241+ widget.control.triggerEvent ("tap_down" , details.toMap ());
242+ }
243+ _lastTapDownDetails = details;
244+ },
226245 onTapUp: onTapUp
227246 ? (TapUpDetails details) {
228247 widget.control.triggerEvent ("tap_up" , details.toMap ());
229248 }
230249 : null ,
231250 onSecondaryTap: onSecondaryTap
232- ? () => widget.control.triggerEvent ("secondary_tap" )
251+ ? () => widget.control.triggerEvent (
252+ "secondary_tap" , _lastSecondaryTapDownDetails? .toMap ())
233253 : null ,
234- onSecondaryTapDown: onSecondaryTapDown
235- ? (TapDownDetails details) {
254+ onSecondaryTapDown: (TapDownDetails details) {
255+ if (onSecondaryTapDown) {
256+ widget.control
257+ .triggerEvent ("secondary_tap_down" , details.toMap ());
258+ }
259+ _lastSecondaryTapDownDetails = details;
260+ },
261+ onSecondaryTapUp: onSecondaryTapUp
262+ ? (TapUpDetails details) {
236263 widget.control
237- .triggerEvent ("secondary_tap_down " , details.toMap ());
264+ .triggerEvent ("secondary_tap_up " , details.toMap ());
238265 }
239266 : null ,
240- onSecondaryTapUp: onSecondaryTapUp
267+ onTertiaryTapDown: (TapDownDetails details) {
268+ if (onTertiaryTapDown) {
269+ widget.control
270+ .triggerEvent ("tertiary_tap_down" , details.toMap ());
271+ }
272+ },
273+ onTertiaryTapUp: onTertiaryTapUp
241274 ? (TapUpDetails details) {
242275 widget.control
243- .triggerEvent ("secondary_tap_up " , details.toMap ());
276+ .triggerEvent ("tertiary_tap_up " , details.toMap ());
244277 }
245278 : null ,
246279 onLongPressStart: onLongPressStart
@@ -267,15 +300,28 @@ class _GestureDetectorControlState extends State<GestureDetectorControl> {
267300 "secondary_long_press_end" , details.toMap ());
268301 }
269302 : null ,
270- onDoubleTap: onDoubleTap
271- ? () => widget.control.triggerEvent ("double_tap" )
303+ onTertiaryLongPressStart: onTertiaryLongPressStart
304+ ? (LongPressStartDetails details) {
305+ widget.control.triggerEvent (
306+ "tertiary_long_press_start" , details.toMap ());
307+ }
272308 : null ,
273- onDoubleTapDown : onDoubleTapDown
274- ? (TapDownDetails details) {
275- widget.control
276- . triggerEvent ( "double_tap_down " , details.toMap ());
309+ onTertiaryLongPressEnd : onTertiaryLongPressEnd
310+ ? (LongPressEndDetails details) {
311+ widget.control. triggerEvent (
312+ "tertiary_long_press_end " , details.toMap ());
277313 }
278314 : null ,
315+ onDoubleTap: onDoubleTap
316+ ? () => widget.control.triggerEvent (
317+ "double_tap" , _lastDoubleTapDownDetails? .toMap ())
318+ : null ,
319+ onDoubleTapDown: (TapDownDetails details) {
320+ if (onDoubleTapDown) {
321+ widget.control.triggerEvent ("double_tap_down" , details.toMap ());
322+ }
323+ _lastDoubleTapDownDetails = details;
324+ },
279325 onHorizontalDragStart:
280326 (onHorizontalDragStart || onHorizontalDragUpdate)
281327 ? handleHorizontalDragStart
0 commit comments