@override void initState() { super.initState(); // Prevent default event handler document.onContextMenu.listen((event) => event.preventDefault()); } @override Widget build(BuildContext context) { return Scaffold( resizeToAvoidBottomInset: false, body: Center( child: Listener( child: Icon( Icons.ac_unit, size: 48.0, ), onPointerDown: (PointerDownEvent details) { onPointerDown(details,widget.baseData.getTitle()); }, ), ), ); } /// Callback when mouse clicked on `Listener` wrapped widget. Future<void> onPointerDown(PointerDownEvent event, String text) async { // Check if right mouse button clicked if (event.kind == PointerDeviceKind.mouse && event.buttons == kSecondaryMouseButton) { final overlay = Overlay.of(context)!.context.findRenderObject() as RenderBox; final menuItem = await showMenu<int>( context: context,
items: [ PopupMenuItem(child: Text('Copy'), value: 1), PopupMenuItem(child: Text('Cut'), value: 2), ], position: RelativeRect.fromSize( event.position & Size(48.0, 48.0), overlay.size)); // Check if menu item clicked switch (menuItem) { case 1: mesajYaz("kopyalandi "+text); break; case 2: mesajYaz("kesildi "+text); break; default: } } } |