Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 26 additions & 18 deletions super_editor/lib/src/default_editor/super_editor.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,48 +13,48 @@ import 'package:super_editor/src/core/document_selection.dart';
import 'package:super_editor/src/core/edit_context.dart';
import 'package:super_editor/src/core/editor.dart';
import 'package:super_editor/src/core/styles.dart';
import 'package:super_editor/src/default_editor/attributions.dart';
import 'package:super_editor/src/default_editor/blockquote.dart';
import 'package:super_editor/src/default_editor/common_editor_operations.dart';
import 'package:super_editor/src/default_editor/debug_visualization.dart';
import 'package:super_editor/src/default_editor/document_caret_overlay.dart';
import 'package:super_editor/src/default_editor/document_focus_and_selection_policies.dart';
import 'package:super_editor/src/default_editor/document_gestures_mouse.dart';
import 'package:super_editor/src/default_editor/document_gestures_touch_android.dart';
import 'package:super_editor/src/default_editor/document_gestures_touch_ios.dart';
import 'package:super_editor/src/default_editor/document_hardware_keyboard/document_input_keyboard.dart';
import 'package:super_editor/src/default_editor/document_ime/document_input_ime.dart';
import 'package:super_editor/src/default_editor/document_scrollable.dart';
import 'package:super_editor/src/default_editor/horizontal_rule.dart';
import 'package:super_editor/src/default_editor/image.dart';
import 'package:super_editor/src/default_editor/layout_single_column/_styler_composing_region.dart';
import 'package:super_editor/src/default_editor/layout_single_column/layout_single_column.dart';
import 'package:super_editor/src/default_editor/list_items.dart';
import 'package:super_editor/src/default_editor/paragraph.dart';
import 'package:super_editor/src/default_editor/tap_handlers/tap_handlers.dart';
import 'package:super_editor/src/default_editor/tasks.dart';
import 'package:super_editor/src/default_editor/text.dart';
import 'package:super_editor/src/default_editor/text/custom_underlines.dart';
import 'package:super_editor/src/default_editor/unknown_component.dart';
import 'package:super_editor/src/infrastructure/content_layers.dart';
import 'package:super_editor/src/infrastructure/document_gestures.dart';
import 'package:super_editor/src/infrastructure/document_gestures_interaction_overrides.dart';
import 'package:super_editor/src/infrastructure/documents/document_scaffold.dart';
import 'package:super_editor/src/infrastructure/documents/document_scroller.dart';
import 'package:super_editor/src/infrastructure/documents/selection_leader_document_layer.dart';
import 'package:super_editor/src/infrastructure/flutter/build_context.dart';
import 'package:super_editor/src/infrastructure/platforms/android/toolbar.dart';
import 'package:super_editor/src/infrastructure/platforms/ios/ios_system_context_menu.dart';
import 'package:super_editor/src/infrastructure/platforms/ios/toolbar.dart';
import 'package:super_editor/src/infrastructure/platforms/mac/mac_ime.dart';
import 'package:super_editor/src/infrastructure/platforms/mobile_documents.dart';
import 'package:super_editor/src/infrastructure/platforms/platform.dart';
import 'package:super_editor/src/infrastructure/render_sliver_ext.dart';
import 'package:super_editor/src/infrastructure/signal_notifier.dart';
import 'package:super_editor/src/infrastructure/text_input.dart';
import 'package:super_editor/src/undo_redo.dart';
import 'package:super_editor/src/infrastructure/render_sliver_ext.dart';
import 'package:super_text_layout/super_text_layout.dart';

import '../infrastructure/document_gestures_interaction_overrides.dart';
import '../infrastructure/platforms/ios/ios_system_context_menu.dart';
import '../infrastructure/platforms/mobile_documents.dart';
import 'attributions.dart';
import 'blockquote.dart';
import 'document_caret_overlay.dart';
import 'document_focus_and_selection_policies.dart';
import 'document_gestures_mouse.dart';
import 'document_hardware_keyboard/document_input_keyboard.dart';
import 'document_ime/document_input_ime.dart';
import 'horizontal_rule.dart';
import 'image.dart';
import 'layout_single_column/layout_single_column.dart';
import 'paragraph.dart';
import 'text.dart';
import 'unknown_component.dart';

/// A rich text editor that displays a document in a single-column layout.
///
/// A [SuperEditor] brings together the key pieces needed to display a user-editable document:
Expand Down Expand Up @@ -128,6 +128,7 @@ class SuperEditor extends StatefulWidget {
this.keyboardActions,
this.selectorHandlers,
this.gestureMode,
this.dragAutoScrollBoundary = const AxisOffset.symmetric(54),
this.contentTapDelegateFactories = const [superEditorLaunchLinkTapHandlerFactory],
this.selectionLayerLinks,
this.documentUnderlayBuilders = const [],
Expand Down Expand Up @@ -278,6 +279,11 @@ class SuperEditor extends StatefulWidget {
/// The `SuperEditor` gesture mode, e.g., mouse or touch.
final DocumentGestureMode? gestureMode;

/// The closest that the caret/selection extent can get to the viewport boundary
/// before SuperEditor auto-scrolls.
/// Increase `trailing` to auto-scroll earlier near the bottom.
final AxisOffset dragAutoScrollBoundary;

/// List of factories that creates a [ContentTapDelegate], which is given an
/// opportunity to respond to taps on content before the editor, itself.
///
Expand Down Expand Up @@ -910,6 +916,7 @@ class SuperEditorState extends State<SuperEditor> {
],
scrollController: _scrollController,
dragHandleAutoScroller: _dragHandleAutoScroller,
dragAutoScrollBoundary: widget.dragAutoScrollBoundary,
fillViewport: fillViewport,
showDebugPaint: widget.debugPaint.gestures,
child: child,
Expand All @@ -932,6 +939,7 @@ class SuperEditorState extends State<SuperEditor> {
],
scrollController: _scrollController,
dragHandleAutoScroller: _dragHandleAutoScroller,
dragAutoScrollBoundary: widget.dragAutoScrollBoundary,
fillViewport: fillViewport,
showDebugPaint: widget.debugPaint.gestures,
child: child,
Expand Down
Loading