diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/service/internal_key_event_handlers/enter_without_shift_in_text_node_handler.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/service/internal_key_event_handlers/enter_without_shift_in_text_node_handler.dart index a981470f6e..c31b8c3699 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/service/internal_key_event_handlers/enter_without_shift_in_text_node_handler.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/service/internal_key_event_handlers/enter_without_shift_in_text_node_handler.dart @@ -117,12 +117,17 @@ ShortcutEventHandler enterWithoutShiftInTextNodesHandler = makeFollowingNodesIncremental(editorState, insertPath, afterSelection, beginNum: prevNumber); } else { + bool needCopyAttributes = ![ + BuiltInAttributeKey.heading, + BuiltInAttributeKey.quote, + ].contains(subtype); TransactionBuilder(editorState) ..insertNode( textNode.path, textNode.copyWith( children: LinkedList(), delta: Delta(), + attributes: needCopyAttributes ? null : {}, ), ) ..afterSelection = afterSelection @@ -173,7 +178,9 @@ ShortcutEventHandler enterWithoutShiftInTextNodesHandler = Attributes _attributesFromPreviousLine(TextNode textNode) { final prevAttributes = textNode.attributes; final subType = textNode.subtype; - if (subType == null || subType == BuiltInAttributeKey.heading) { + if (subType == null || + subType == BuiltInAttributeKey.heading || + subType == BuiltInAttributeKey.quote) { return {}; } diff --git a/frontend/app_flowy/packages/appflowy_editor/lib/src/service/keyboard_service.dart b/frontend/app_flowy/packages/appflowy_editor/lib/src/service/keyboard_service.dart index 5259872b95..d5154bc2b5 100644 --- a/frontend/app_flowy/packages/appflowy_editor/lib/src/service/keyboard_service.dart +++ b/frontend/app_flowy/packages/appflowy_editor/lib/src/service/keyboard_service.dart @@ -124,6 +124,8 @@ class _AppFlowyKeyboardState extends State final result = shortcutEvent.handler(widget.editorState, event); if (result == KeyEventResult.handled) { return KeyEventResult.handled; + } else if (result == KeyEventResult.skipRemainingHandlers) { + return KeyEventResult.skipRemainingHandlers; } continue; }