From 585e71aa9de3fa37c91f1a443196b46730a95007 Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Wed, 19 Oct 2022 16:35:52 +0800 Subject: [PATCH 1/2] feat: update image builder to support board selection style --- .../lib/src/render/image/image_node_widget.dart | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/image/image_node_widget.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/image/image_node_widget.dart index 5f9b2142fe..bebeeb6c3f 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/render/image/image_node_widget.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/render/image/image_node_widget.dart @@ -34,6 +34,8 @@ class ImageNodeWidget extends StatefulWidget { class _ImageNodeWidgetState extends State with SelectableMixin { + RenderBox get _renderBox => context.findRenderObject() as RenderBox; + final _imageKey = GlobalKey(); double? _imageWidth; @@ -76,6 +78,12 @@ class _ImageNodeWidgetState extends State ); } + @override + bool get shouldCursorBlink => false; + + @override + CursorStyle get cursorStyle => CursorStyle.borderLine; + @override Position start() { return Position(path: widget.node.path, offset: 0); @@ -93,7 +101,8 @@ class _ImageNodeWidgetState extends State @override Rect? getCursorRectInPosition(Position position) { - return null; + final size = _renderBox.size; + return Rect.fromLTWH(-size.width / 2.0, 0, size.width, size.height); } @override From 2d66dfabe86f67325242846375af807b16cd36f3 Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Wed, 19 Oct 2022 16:49:41 +0800 Subject: [PATCH 2/2] fix: the old context menu didn't dismiss after double-tap the other place --- .../appflowy_editor/lib/src/service/selection_service.dart | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/service/selection_service.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/service/selection_service.dart index e562db0f7e..cca55527bf 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/service/selection_service.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/service/selection_service.dart @@ -505,6 +505,13 @@ class _AppFlowySelectionState extends State } void _showContextMenu(TapDownDetails details) { + _clearContextMenu(); + + // For now, only support the text node. + if (!currentSelectedNodes.every((element) => element is TextNode)) { + return; + } + final contextMenu = OverlayEntry( builder: (context) => ContextMenu( position: details.globalPosition,