Fix "Close All BUT this" looses current document data issue
If a non-existing file is open as the 1st tab (opened then file is deleted outside of Notepad++), and "Close All BUT this" is run, then current document will be closed. Fix #8617
This commit is contained in:
parent
64ba8d7855
commit
a82819972a
|
@ -1248,7 +1248,6 @@ bool Notepad_plus::fileCloseAllUnchanged()
|
||||||
bool Notepad_plus::fileCloseAllButCurrent()
|
bool Notepad_plus::fileCloseAllButCurrent()
|
||||||
{
|
{
|
||||||
BufferID current = _pEditView->getCurrentBufferID();
|
BufferID current = _pEditView->getCurrentBufferID();
|
||||||
int active = _pDocTab->getCurrentTabIndex();
|
|
||||||
const int activeViewID = currentView();
|
const int activeViewID = currentView();
|
||||||
bool noSaveToAll = false;
|
bool noSaveToAll = false;
|
||||||
bool saveToAll = false;
|
bool saveToAll = false;
|
||||||
|
@ -1423,8 +1422,21 @@ bool Notepad_plus::fileCloseAllButCurrent()
|
||||||
}
|
}
|
||||||
|
|
||||||
const int viewNo = currentView();
|
const int viewNo = currentView();
|
||||||
|
int active = _pDocTab->getCurrentTabIndex();
|
||||||
|
size_t nbItems = _pDocTab->nbItem();
|
||||||
activateBuffer(_pDocTab->getBufferByIndex(0), viewNo);
|
activateBuffer(_pDocTab->getBufferByIndex(0), viewNo);
|
||||||
for (int32_t i = static_cast<int32_t>(_pDocTab->nbItem()) - 1; i >= 0; i--) //close all from right to left
|
|
||||||
|
// After activateBuffer() call, if file is deleteed, user will decide to keep or not the tab
|
||||||
|
// So here we check if the 1st tab is closed or not
|
||||||
|
size_t newNbItems = _pDocTab->nbItem();
|
||||||
|
|
||||||
|
if (nbItems > newNbItems) // the 1st tab has been removed
|
||||||
|
{
|
||||||
|
// active tab move 1 position forward
|
||||||
|
active -= 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int32_t i = static_cast<int32_t>(newNbItems) - 1; i >= 0; i--) //close all from right to left
|
||||||
{
|
{
|
||||||
if (i == active) //dont close active index
|
if (i == active) //dont close active index
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue