From ab4a2e8b07af72bd9efbba5027e8b164707b224b Mon Sep 17 00:00:00 2001 From: Aryman Date: Wed, 10 Aug 2022 03:23:37 +0530 Subject: [PATCH] fix: menu displayed at mouse location --- .../menu/app/section/disclosure_action.dart | 19 ++++++++++++------- .../home/menu/app/section/item.dart | 1 - 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/frontend/app_flowy/lib/workspace/presentation/home/menu/app/section/disclosure_action.dart b/frontend/app_flowy/lib/workspace/presentation/home/menu/app/section/disclosure_action.dart index 7fe02bab1a..7375f6a113 100644 --- a/frontend/app_flowy/lib/workspace/presentation/home/menu/app/section/disclosure_action.dart +++ b/frontend/app_flowy/lib/workspace/presentation/home/menu/app/section/disclosure_action.dart @@ -76,13 +76,7 @@ class ViewDisclosureRegion extends StatelessWidget @override Widget build(BuildContext context) { return Listener( - onPointerDown: (event) => { - if (event.kind == PointerDeviceKind.mouse && - event.buttons == kSecondaryMouseButton) - { - show(context), - } - }, + onPointerDown: (event) => {_handleClick(event, context)}, child: child, ); } @@ -101,6 +95,17 @@ class ViewDisclosureRegion extends StatelessWidget (wrapper) => onSelected(dartz.some(wrapper.inner)), ); }; + + void _handleClick(PointerDownEvent event, BuildContext context) { + if (event.kind == PointerDeviceKind.mouse && + event.buttons == kSecondaryMouseButton) { + RenderBox box = context.findRenderObject() as RenderBox; + Offset position = box.localToGlobal(Offset.zero); + double x = event.position.dx - position.dx - box.size.width; + double y = event.position.dy - position.dy - box.size.height; + show(context, anchorOffset: Offset(x, y)); + } + } } class ViewDisclosureActionWrapper extends ActionItem { diff --git a/frontend/app_flowy/lib/workspace/presentation/home/menu/app/section/item.dart b/frontend/app_flowy/lib/workspace/presentation/home/menu/app/section/item.dart index 93855c3fa2..3ca8577d8c 100644 --- a/frontend/app_flowy/lib/workspace/presentation/home/menu/app/section/item.dart +++ b/frontend/app_flowy/lib/workspace/presentation/home/menu/app/section/item.dart @@ -86,7 +86,6 @@ class ViewSectionItem extends StatelessWidget { } return ViewDisclosureRegion( - // context.read().add(const ViewEvent.setIsEditing(true)), onSelected: (action) { context.read().add(const ViewEvent.setIsEditing(false)); _handleAction(context, action);