diff --git a/include/eepp/scene/event.hpp b/include/eepp/scene/event.hpp index 2d6320659..e63a2072a 100644 --- a/include/eepp/scene/event.hpp +++ b/include/eepp/scene/event.hpp @@ -84,6 +84,7 @@ class EE_API Event { UserEvent, OnMenuShow, OnMenuHide, + OnEditorTabReady, NoEvent = eeINDEX_NOT_FOUND }; diff --git a/src/eepp/ui/doc/textdocument.cpp b/src/eepp/ui/doc/textdocument.cpp index 4aef6f86d..bf4d12912 100644 --- a/src/eepp/ui/doc/textdocument.cpp +++ b/src/eepp/ui/doc/textdocument.cpp @@ -412,7 +412,7 @@ TextDocument::LoadStatus TextDocument::reload() { : FileInfo( mFilePath ); resetSyntax(); notifyTextChanged(); - setSelection( selection.start() ); + setSelection( sanitizePosition( selection.start() ) ); } return ret; } diff --git a/src/eepp/ui/tools/uicodeeditorsplitter.cpp b/src/eepp/ui/tools/uicodeeditorsplitter.cpp index bcc2e8c11..f297a6e0d 100644 --- a/src/eepp/ui/tools/uicodeeditorsplitter.cpp +++ b/src/eepp/ui/tools/uicodeeditorsplitter.cpp @@ -392,6 +392,8 @@ UICodeEditorSplitter::createCodeEditorInTabWidget( UITabWidget* tabWidget ) { } ); UITab* tab = tabWidget->add( editor->getDocument().getFilename(), editor ); editor->setData( (UintPtr)tab ); + DocEvent docEvent( editor, &editor->getDocument(), Event::OnEditorTabReady ); + editor->sendEvent( static_cast( &docEvent ) ); return std::make_pair( tab, editor ); } diff --git a/src/tools/ecode/ecode.cpp b/src/tools/ecode/ecode.cpp index 15708e664..74c9cc3d1 100644 --- a/src/tools/ecode/ecode.cpp +++ b/src/tools/ecode/ecode.cpp @@ -2054,6 +2054,8 @@ void App::onCodeEditorCreated( UICodeEditor* editor, TextDocument& doc ) { editor->addEventListener( Event::OnDocumentLoaded, docChanged ); editor->addEventListener( Event::OnDocumentChanged, docChanged ); + editor->addEventListener( Event::OnDocumentSave, docChanged ); + editor->addEventListener( Event::OnEditorTabReady, docChanged ); editor->showMinimap( config.minimap );