diff --git a/src/plugins/languageclient/client.cpp b/src/plugins/languageclient/client.cpp index be68f933639..d61f3c720a7 100644 --- a/src/plugins/languageclient/client.cpp +++ b/src/plugins/languageclient/client.cpp @@ -879,6 +879,7 @@ void Client::deactivateDocument(TextEditor::TextDocument *document) TextEditor::TextEditorWidget *widget = textEditor->editorWidget(); widget->removeHoverHandler(&d->m_hoverHandler); widget->setExtraSelections(TextEditor::TextEditorWidget::CodeSemanticsSelection, {}); + updateEditorToolBar(editor); } } } diff --git a/src/plugins/languageclient/languageclientmanager.cpp b/src/plugins/languageclient/languageclientmanager.cpp index d3c2220fc88..d4f5c442642 100644 --- a/src/plugins/languageclient/languageclientmanager.cpp +++ b/src/plugins/languageclient/languageclientmanager.cpp @@ -199,10 +199,10 @@ void LanguageClientManager::shutdownClient(Client *client) if (!client) return; qCDebug(Log) << "request client shutdown: " << client->name() << client; - // reset the documents for that client already when requesting the shutdown so they can get - // reassigned to another server right after this request to another server + // reset and deactivate the documents for that client by assigning a null client already when + // requesting the shutdown so they can get reassigned to another server right after this request for (TextEditor::TextDocument *document : managerInstance->m_clientForDocument.keys(client)) - managerInstance->m_clientForDocument.remove(document); + openDocumentWithClient(document, nullptr); if (client->reachable()) client->shutdown(); else if (client->state() != Client::Shutdown && client->state() != Client::ShutdownRequested) @@ -409,6 +409,7 @@ void LanguageClientManager::openDocumentWithClient(TextEditor::TextDocument *doc Client *currentClient = clientForDocument(document); if (client == currentClient) return; + managerInstance->m_clientForDocument.remove(document); if (currentClient) currentClient->deactivateDocument(document); managerInstance->m_clientForDocument[document] = client;