[NEW_FEATURE] (Author: Etienne Boireau) While current file is closed the previous activated file will be activated (MRU).

git-svn-id: svn://svn.tuxfamily.org/svnroot/notepadplus/repository/trunk@1282 f5eea248-9336-0410-98b8-ebc06183d4e3
This commit is contained in:
Don Ho 2014-10-28 22:26:17 +00:00
parent 57633249ab
commit 9dd5e62802
1 changed files with 22 additions and 12 deletions

View File

@ -3017,18 +3017,28 @@ bool Notepad_plus::removeBufferFromView(BufferID id, int whichOne)
} }
else else
{ {
int toActivate = 0; BufferID bufferToActivate = NULL;
//activate next doc, otherwise prev if not possible if (NppParameters::getInstance()->getNppGUI()._styleMRU) // If Most-Recently-Used mode:
if (active == tabToClose->nbItem() - 1) //prev { // Activate Most-Recently-Used doc:
{ TaskListInfo taskListInfo;
toActivate = active - 1; ::SendMessage(_pPublicInterface->getHSelf(), WM_GETTASKLISTINFO, (WPARAM)&taskListInfo, 0);
} bufferToActivate = static_cast<BufferID>(taskListInfo._tlfsLst[1]._bufID);
else }
{ else
toActivate = active; //activate the 'active' index. Since we remove the tab first, the indices shift (on the right side) { // Activate next doc, otherwise previous if not possible:
} int toActivate = 0;
tabToClose->deletItemAt((size_t)index); //delete first if (active == tabToClose->nbItem() - 1) // If last doc:
activateBuffer(tabToClose->getBufferByIndex(toActivate), whichOne); //then activate. The prevent jumpy tab behaviour {
toActivate = active - 1; // Activate previous doc.
}
else
{
toActivate = active + 1; // Activate next doc.
}
bufferToActivate = tabToClose->getBufferByIndex(toActivate);
}
tabToClose->deletItemAt((size_t)index); //delete first
activateBuffer(bufferToActivate, whichOne); //then activate. The prevent jumpy tab behaviour
} }
} }
else else