diff --git a/src/eepp/ui/uicodeeditor.cpp b/src/eepp/ui/uicodeeditor.cpp index f96a573e0..93b40307f 100644 --- a/src/eepp/ui/uicodeeditor.cpp +++ b/src/eepp/ui/uicodeeditor.cpp @@ -180,6 +180,8 @@ UICodeEditor::~UICodeEditor() { getUISceneNode()->getThreadPool()->removeWithTag( tag ); } + getUISceneNode()->removeActionsByTag( mTagFoldRange ); + if ( mCurrentMenu ) { mCurrentMenu->clearEventListener(); mCurrentMenu = nullptr; @@ -4215,12 +4217,13 @@ String UICodeEditor::checkMouseOverLink( const Vector2i& position ) { } String UICodeEditor::resetLinkOver( const Vector2i& mousePos ) { - if ( mHandShown ) + if ( mHandShown ) { + mHandShown = false; + updateMouseCursor( mousePos.asFloat() ); + mLinkPosition = TextRange(); + mLink.clear(); invalidateDraw(); - mHandShown = false; - updateMouseCursor( mousePos.asFloat() ); - mLinkPosition = TextRange(); - mLink.clear(); + } return ""; } diff --git a/src/tools/ecode/plugins/linter/linterplugin.cpp b/src/tools/ecode/plugins/linter/linterplugin.cpp index 2fdeab573..d84131ed0 100644 --- a/src/tools/ecode/plugins/linter/linterplugin.cpp +++ b/src/tools/ecode/plugins/linter/linterplugin.cpp @@ -1151,6 +1151,8 @@ void LinterPlugin::tryHideHoveringMatch( UICodeEditor* editor ) { if ( mHoveringMatch && editor->getTooltip() && editor->getTooltip()->isVisible() ) { editor->setTooltipText( "" ); editor->getTooltip()->hide(); + editor->getTooltip()->setWordWrap( mOldWordWrap ); + editor->getTooltip()->setMaxWidthEq( mOldMaxWidth ); mHoveringMatch = false; } } @@ -1306,6 +1308,10 @@ bool LinterPlugin::onMouseMove( UICodeEditor* editor, const Vector2i& pos, const tooltip->setHorizontalAlign( UI_HALIGN_LEFT ); tooltip->setDontAutoHideOnMouseMove( true ); tooltip->setPixelsPosition( tooltip->getTooltipPosition( pos.asFloat() ) ); + mOldWordWrap = tooltip->isWordWrap(); + mOldMaxWidth = tooltip->getMaxWidthEq(); + tooltip->setWordWrap( true ); + tooltip->setMaxWidthEq( "50vw" ); if ( !tooltip->isVisible() ) tooltip->show(); return true; diff --git a/src/tools/ecode/plugins/linter/linterplugin.hpp b/src/tools/ecode/plugins/linter/linterplugin.hpp index 9597bee71..abbfed21a 100644 --- a/src/tools/ecode/plugins/linter/linterplugin.hpp +++ b/src/tools/ecode/plugins/linter/linterplugin.hpp @@ -149,12 +149,14 @@ class LinterPlugin : public Plugin { bool mEnableLSPDiagnostics{ true }; bool mErrorLens{ true }; bool mGoToIgnoreWarnings{ false }; + bool mOldWordWrap{ false }; std::set mLanguagesDisabled; std::set mLSPLanguagesDisabled; String::HashType mConfigHash{ 0 }; UIIcon* mLightbulbIcon{ nullptr }; std::string mErrorMsg; Rectf mQuickFixRect; + std::string mOldMaxWidth; LinterPlugin( PluginManager* pluginManager, bool sync ); diff --git a/src/tools/ecode/plugins/lsp/lspclientplugin.cpp b/src/tools/ecode/plugins/lsp/lspclientplugin.cpp index 6c0ddc285..783d04cb1 100644 --- a/src/tools/ecode/plugins/lsp/lspclientplugin.cpp +++ b/src/tools/ecode/plugins/lsp/lspclientplugin.cpp @@ -1619,7 +1619,7 @@ bool LSPClientPlugin::onMouseMove( UICodeEditor* editor, const Vector2i& positio }, mHoverDelay, tag ); tryHideTooltip( editor, position ); - return editor->getTooltip() && editor->getTooltip()->isVisible(); + return editor->getTooltip() && editor->getTooltip()->isVisible() && mSymbolInfoShowing; } void LSPClientPlugin::onFocusLoss( UICodeEditor* editor ) {