@@ -64,6 +64,7 @@ class ContainerControl extends StatelessWidget with FletStoreMixin {
6464 children.where ((c) => c.name == "content" && c.isVisible);
6565 bool ink = control.attrBool ("ink" , false )! ;
6666 bool onClick = control.attrBool ("onclick" , false )! ;
67+ bool onTapDown = control.attrBool ("onTapDown" , false )! ;
6768 String url = control.attrString ("url" , "" )! ;
6869 String ? urlTarget = control.attrString ("urlTarget" );
6970 bool onLongPress = control.attrBool ("onLongPress" , false )! ;
@@ -160,12 +161,23 @@ class ContainerControl extends StatelessWidget with FletStoreMixin {
160161 openWebBrowser (url, webWindowName: urlTarget);
161162 }
162163 if (onClick) {
163- backend.triggerControlEvent (
164- control.id,
165- "click" );
164+ backend.triggerControlEvent (control.id, "click" );
166165 }
167166 }
168167 : null ,
168+ onTapDown: onTapDown
169+ ? (details) {
170+ backend.triggerControlEvent (
171+ control.id,
172+ "tap_down" ,
173+ json.encode (ContainerTapEvent (
174+ localX: details.localPosition.dx,
175+ localY: details.localPosition.dy,
176+ globalX: details.globalPosition.dx,
177+ globalY: details.globalPosition.dy)
178+ .toJson ()));
179+ }
180+ : null ,
169181 onLongPress: onLongPress
170182 ? () {
171183 debugPrint ("Container ${control .id } long pressed!" );
@@ -241,8 +253,7 @@ class ContainerControl extends StatelessWidget with FletStoreMixin {
241253 : null ,
242254 child: child);
243255
244- if ((onClick || onLongPress || onHover || url != "" ) &&
245- ! disabled) {
256+ if ((onClick || onLongPress || onHover || url != "" ) && ! disabled) {
246257 result = MouseRegion (
247258 cursor: onClick || url != ""
248259 ? SystemMouseCursors .click
@@ -269,12 +280,23 @@ class ContainerControl extends StatelessWidget with FletStoreMixin {
269280 openWebBrowser (url, webWindowName: urlTarget);
270281 }
271282 if (onClick) {
272- backend.triggerControlEvent (
273- control.id,
274- "click" );
283+ backend.triggerControlEvent (control.id, "click" );
275284 }
276285 }
277286 : null ,
287+ onTapDown: onTapDown
288+ ? (details) {
289+ backend.triggerControlEvent (
290+ control.id,
291+ "tap_down" ,
292+ json.encode (ContainerTapEvent (
293+ localX: details.localPosition.dx,
294+ localY: details.localPosition.dy,
295+ globalX: details.globalPosition.dx,
296+ globalY: details.globalPosition.dy)
297+ .toJson ()));
298+ }
299+ : null ,
278300 onLongPress: onLongPress
279301 ? () {
280302 debugPrint ("Container ${control .id } clicked!" );
0 commit comments