diff --git a/desktop/desktop.cpp b/desktop/desktop.cpp index 0c5d62e..22c8bcf 100644 --- a/desktop/desktop.cpp +++ b/desktop/desktop.cpp @@ -1365,10 +1365,6 @@ bool ApplicationInstanceStart(int64_t applicationID, EsApplicationStartupInforma instance->tab->notRespondingInstance = nullptr; } - ApplicationInstanceCleanup(instance); - - instance->application = application; - ApplicationProcess *process = application->singleProcess; if (application->createInstance) { @@ -1524,9 +1520,15 @@ bool ApplicationInstanceStart(int64_t applicationID, EsApplicationStartupInforma application->singleProcess = process; } - instance->process = process; + // Increment the instance count before cleaning up the old process, + // so that when going between 2 Desktop instances, + // the Desktop process doesn't exit. process->instanceCount++; + ApplicationInstanceCleanup(instance); + instance->application = application; + instance->process = process; + if (startupInformation->documentID) { instance->documentID = startupInformation->documentID; OpenDocumentOpenReference(instance->documentID);