diff --git a/lib/editors/checklist_editor.dart b/lib/editors/checklist_editor.dart index cf149311..75c10bff 100644 --- a/lib/editors/checklist_editor.dart +++ b/lib/editors/checklist_editor.dart @@ -23,6 +23,8 @@ class ChecklistEditor extends StatefulWidget implements Editor { @override final NoteCallback discardChangesSelected; + final bool autofocusOnEditor; + ChecklistEditor({ Key key, @required this.note, @@ -32,6 +34,7 @@ class ChecklistEditor extends StatefulWidget implements Editor { @required this.renameNoteSelected, @required this.moveNoteToFolderSelected, @required this.discardChangesSelected, + @required this.autofocusOnEditor, }) : super(key: key); @override diff --git a/lib/editors/markdown_editor.dart b/lib/editors/markdown_editor.dart index 35e42d3d..1158e87b 100644 --- a/lib/editors/markdown_editor.dart +++ b/lib/editors/markdown_editor.dart @@ -31,7 +31,7 @@ class MarkdownEditor extends StatefulWidget implements Editor { @required this.renameNoteSelected, @required this.moveNoteToFolderSelected, @required this.discardChangesSelected, - this.autofocusOnEditor = false, + @required this.autofocusOnEditor, }) : super(key: key); @override diff --git a/lib/editors/raw_editor.dart b/lib/editors/raw_editor.dart index f311854f..68f2ab7c 100644 --- a/lib/editors/raw_editor.dart +++ b/lib/editors/raw_editor.dart @@ -20,6 +20,8 @@ class RawEditor extends StatefulWidget implements Editor { @override final NoteCallback discardChangesSelected; + final bool autofocusOnEditor; + RawEditor({ Key key, @required this.note, @@ -29,6 +31,7 @@ class RawEditor extends StatefulWidget implements Editor { @required this.renameNoteSelected, @required this.moveNoteToFolderSelected, @required this.discardChangesSelected, + @required this.autofocusOnEditor, }) : super(key: key); @override @@ -58,7 +61,10 @@ class RawEditorState extends State implements EditorState { var editor = Padding( padding: const EdgeInsets.all(16.0), child: SingleChildScrollView( - child: _NoteEditor(_textController), + child: _NoteEditor( + _textController, + autofocus: widget.autofocusOnEditor, + ), ), ); @@ -78,8 +84,9 @@ class RawEditorState extends State implements EditorState { class _NoteEditor extends StatelessWidget { final TextEditingController textController; + final bool autofocus; - _NoteEditor(this.textController); + _NoteEditor(this.textController, {this.autofocus = false}); @override Widget build(BuildContext context) { @@ -87,7 +94,7 @@ class _NoteEditor extends StatelessWidget { Theme.of(context).textTheme.subhead.copyWith(fontFamily: "Roboto Mono"); return TextField( - autofocus: false, + autofocus: autofocus, autocorrect: false, keyboardType: TextInputType.multiline, maxLines: null, diff --git a/lib/screens/note_editor.dart b/lib/screens/note_editor.dart index dd16da3b..4d4fb0bc 100644 --- a/lib/screens/note_editor.dart +++ b/lib/screens/note_editor.dart @@ -103,6 +103,7 @@ class NoteEditorState extends State { renameNoteSelected: _renameNoteSelected, moveNoteToFolderSelected: _moveNoteToFolderSelected, discardChangesSelected: _discardChangesSelected, + autofocusOnEditor: _isNewNote, ); case EditorType.Checklist: return ChecklistEditor( @@ -114,6 +115,7 @@ class NoteEditorState extends State { renameNoteSelected: _renameNoteSelected, moveNoteToFolderSelected: _moveNoteToFolderSelected, discardChangesSelected: _discardChangesSelected, + autofocusOnEditor: _isNewNote, ); } return null;