Fix untitled document number jumping or repeated problem

Fix #13194, fix #8677, fix #11704, close #13204
This commit is contained in:
ArkadiuszMichalski 2023-02-23 16:59:06 +01:00 committed by Don Ho
parent 7789c7daf5
commit 892ab0850f

View File

@ -1265,13 +1265,25 @@ size_t FileManager::nextUntitledNewNumber() const
Buffer *buf = _buffers.at(i); Buffer *buf = _buffers.at(i);
if (buf->isUntitled()) if (buf->isUntitled())
{ {
// if untitled document is invisible, then don't put its number into array (so its number is available to be used) bool isVisible = false;
if ((buf->_referees[0])->isVisible()) for (size_t k = 0; k < buf->_referees.size(); k++)
{ {
generic_string newTitle = ((NppParameters::getInstance()).getNativeLangSpeaker())->getLocalizedStrFromID("tab-untitled-string", UNTITLED_STR); if (buf->_referees[k]->isVisible())
TCHAR *numberStr = buf->_fileName + newTitle.length(); {
int usedNumber = _wtoi(numberStr); isVisible = true;
usedNumbers.push_back(usedNumber); 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);
}
} }
} }
} }