From 892ab0850fdfefe4f335e0977745e06b7a6ac4c8 Mon Sep 17 00:00:00 2001 From: ArkadiuszMichalski <2730894+ArkadiuszMichalski@users.noreply.github.com> Date: Thu, 23 Feb 2023 16:59:06 +0100 Subject: [PATCH] Fix untitled document number jumping or repeated problem Fix #13194, fix #8677, fix #11704, close #13204 --- PowerEditor/src/ScintillaComponent/Buffer.cpp | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/PowerEditor/src/ScintillaComponent/Buffer.cpp b/PowerEditor/src/ScintillaComponent/Buffer.cpp index b47b8b118..9669a6c95 100644 --- a/PowerEditor/src/ScintillaComponent/Buffer.cpp +++ b/PowerEditor/src/ScintillaComponent/Buffer.cpp @@ -1265,13 +1265,25 @@ size_t FileManager::nextUntitledNewNumber() const Buffer *buf = _buffers.at(i); if (buf->isUntitled()) { - // if untitled document is invisible, then don't put its number into array (so its number is available to be used) - if ((buf->_referees[0])->isVisible()) + bool isVisible = false; + for (size_t k = 0; k < buf->_referees.size(); k++) { - generic_string newTitle = ((NppParameters::getInstance()).getNativeLangSpeaker())->getLocalizedStrFromID("tab-untitled-string", UNTITLED_STR); - TCHAR *numberStr = buf->_fileName + newTitle.length(); - int usedNumber = _wtoi(numberStr); - usedNumbers.push_back(usedNumber); + if (buf->_referees[k]->isVisible()) + { + isVisible = true; + break; + } + } + + if (isVisible) + { + if (buf->indexOfReference(_pNotepadPlus->_pEditView) > -1 || buf->indexOfReference(_pNotepadPlus->_pNonEditView) > -1) + { + generic_string newTitle = ((NppParameters::getInstance()).getNativeLangSpeaker())->getLocalizedStrFromID("tab-untitled-string", UNTITLED_STR); + TCHAR* numberStr = buf->_fileName + newTitle.length(); + int usedNumber = _wtoi(numberStr); + usedNumbers.push_back(usedNumber); + } } } }