From e095a176832f644eb22b387887ac7b386e9c0dfd Mon Sep 17 00:00:00 2001 From: Aryman Date: Wed, 10 Aug 2022 14:46:39 +0530 Subject: [PATCH] fix: bug where context menu options wouldn't work unless page was selcted --- .../home/menu/app/section/disclosure_action.dart | 12 +++++++++++- .../presentation/home/menu/app/section/item.dart | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) 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 7375f6a113..019f674b01 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 @@ -64,13 +64,17 @@ class ViewDisclosureButton extends StatelessWidget class ViewDisclosureRegion extends StatelessWidget with ActionList, FlowyOverlayDelegate { final Widget child; + final Function() onTap; final Function(dartz.Option) onSelected; final _items = ViewDisclosureAction.values .map((action) => ViewDisclosureActionWrapper(action)) .toList(); ViewDisclosureRegion( - {Key? key, required this.onSelected, required this.child}) + {Key? key, + required this.onSelected, + required this.onTap, + required this.child}) : super(key: key); @override @@ -96,6 +100,11 @@ class ViewDisclosureRegion extends StatelessWidget ); }; + @override + void didRemove() { + onSelected(dartz.none()); + } + void _handleClick(PointerDownEvent event, BuildContext context) { if (event.kind == PointerDeviceKind.mouse && event.buttons == kSecondaryMouseButton) { @@ -103,6 +112,7 @@ class ViewDisclosureRegion extends StatelessWidget 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; + onTap(); show(context, anchorOffset: Offset(x, y)); } } 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 3ca8577d8c..bfc51f4bf9 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,6 +86,8 @@ class ViewSectionItem extends StatelessWidget { } return ViewDisclosureRegion( + onTap: () => + context.read().add(const ViewEvent.setIsEditing(true)), onSelected: (action) { context.read().add(const ViewEvent.setIsEditing(false)); _handleAction(context, action);