Fix issue with basic text editing and editor display

pull/95/head
Miller Adulu 4 years ago
parent 933a17eafb
commit 419f31371b
  1. 17
      lib/widgets/editor.dart
  2. 3
      lib/widgets/raw_editor.dart
  3. 16
      lib/widgets/text_line.dart

@ -149,7 +149,7 @@ class QuillEditor extends StatefulWidget {
final bool? showCursor;
final bool readOnly;
final String? placeholder;
final bool? enableInteractiveSelection;
final bool enableInteractiveSelection;
final double? minHeight;
final double? maxHeight;
final DefaultStyles? customStyles;
@ -161,8 +161,7 @@ class QuillEditor extends StatefulWidget {
final EmbedBuilder embedBuilder;
QuillEditor(
{Key? key,
required this.controller,
{required this.controller,
required this.focusNode,
required this.scrollController,
required this.scrollable,
@ -171,7 +170,7 @@ class QuillEditor extends StatefulWidget {
this.showCursor,
required this.readOnly,
this.placeholder,
this.enableInteractiveSelection,
this.enableInteractiveSelection = true,
this.minHeight,
this.maxHeight,
this.customStyles,
@ -184,7 +183,7 @@ class QuillEditor extends StatefulWidget {
kIsWeb ? _defaultEmbedBuilderWeb : _defaultEmbedBuilder});
factory QuillEditor.basic(
{Key? key, required QuillController controller, required bool readOnly}) {
{required QuillController controller, required bool readOnly}) {
return QuillEditor(
controller: controller,
scrollController: ScrollController(),
@ -296,7 +295,7 @@ class _QuillEditorState extends State<QuillEditor>
selectionColor,
textSelectionControls,
widget.keyboardAppearance,
widget.enableInteractiveSelection!,
widget.enableInteractiveSelection ?? true,
widget.scrollPhysics,
widget.embedBuilder),
);
@ -313,7 +312,7 @@ class _QuillEditorState extends State<QuillEditor>
}
@override
bool? getSelectionEnabled() {
bool getSelectionEnabled() {
return widget.enableInteractiveSelection;
}
@ -341,7 +340,7 @@ class _QuillEditorSelectionGestureDetectorBuilder
@override
void onSingleLongTapMoveUpdate(LongPressMoveUpdateDetails details) {
if (!delegate.getSelectionEnabled()!) {
if (!delegate.getSelectionEnabled()) {
return;
}
switch (Theme.of(_state.context).platform) {
@ -470,7 +469,7 @@ class _QuillEditorSelectionGestureDetectorBuilder
bool positionSelected = _onTapping(details);
if (delegate.getSelectionEnabled()! && !positionSelected) {
if (delegate.getSelectionEnabled() && !positionSelected) {
switch (Theme.of(_state.context).platform) {
case TargetPlatform.iOS:
case TargetPlatform.macOS:

@ -29,6 +29,7 @@ import 'delegate.dart';
import 'editor.dart';
import 'keyboard_listener.dart';
class RawEditor extends StatefulWidget {
final QuillController controller;
final FocusNode focusNode;
@ -1176,4 +1177,4 @@ class _Editor extends MultiChildRenderObjectWidget {
renderObject.onSelectionChanged = onSelectionChanged;
renderObject.setPadding(padding);
}
}
}

@ -101,7 +101,7 @@ class TextLine extends StatelessWidget {
Attribute.h3: defaultStyles.h3!.style,
};
textStyle = textStyle.merge(m[header!] ?? defaultStyles.paragraph!.style);
textStyle = textStyle.merge(m[header] ?? defaultStyles.paragraph!.style);
Attribute? block = line.style.getBlockExceptHeader();
TextStyle? toMerge;
@ -187,8 +187,8 @@ class TextLine extends StatelessWidget {
decorations.add(b.decoration);
}
return a.merge(b).apply(
decoration:
TextDecoration.combine(decorations as List<TextDecoration>));
decoration: TextDecoration.combine(
List.castFrom<dynamic, TextDecoration>(decorations)));
}
}
@ -824,8 +824,8 @@ class _TextLineElement extends RenderObjectElement {
}
@override
insertRenderObjectChild(RenderObject child, TextLineSlot? slot) {
assert(child is RenderBox);
insertRenderObjectChild(RenderBox child, TextLineSlot? slot) {
// assert(child is RenderBox);
_updateRenderObject(child, slot);
assert(renderObject.children.keys.contains(slot));
}
@ -854,13 +854,13 @@ class _TextLineElement extends RenderObjectElement {
}
}
_updateRenderObject(RenderObject? child, TextLineSlot? slot) {
_updateRenderObject(RenderBox? child, TextLineSlot? slot) {
switch (slot) {
case TextLineSlot.LEADING:
renderObject.setLeading(child as RenderBox?);
renderObject.setLeading(child);
break;
case TextLineSlot.BODY:
renderObject.setBody((child as RenderBox?) as RenderContentProxyBox?);
renderObject.setBody((child) as RenderContentProxyBox?);
break;
default:
throw UnimplementedError();

Loading…
Cancel
Save