Have been using Krusader for yonks now. Back in version
2.4.0-beta1 I wanted the locked tabs to look like Total Commander. Downloaded the source and made changes to do such. Also made a second fix but can't remember what that one was. Remember getting a response from the developer but my code wasn't implemented. So have been using my version since then. Of course, over time and many new distros, it has missed the new features and has had its own problems. Each time I upgrade to a new distro (usually Kubuntu), I checked the latest Krusader and until this version didn't see a reason to upgrade. Then I discovered that the much better looking lock on the tabs didn't actually stop the tab from being closed. So reckoned it was time to make my own version again based on 2.6.0. Lots of problems getting it to build correctly. They were mainly getting cmake to work and some dependencies
not installed. The eventual solution was doing the cmake from /krusader and not /krusader/build.
So I've been successful in getting a working version that only closes tabs if they are unlocked. Unless I'm missing something totally obvious, the locked condition wasn't being checked. So changed the code in PanelManager::SlotCloseTab(int) as follows:
ListPanel *oldp;
ListPanel *panel = _currentPanel;
// do not remove tab if locked!
if (!panel->gui->isLocked()) {
qWarning() << "PanelManager::slotCloseTab() - closing tab" << index << panel->gui->isLocked();
// if (index == _tabbar->currentIndex())
// slotChangePanel(_tabbar->removeCurrentPanel(oldp), false);
// else
_tabbar->removePanel(index, oldp); //this automatically changes the current panel
_stack->removeWidget(oldp);
deletePanel(oldp);
tabsCountChanged();
} else {
qWarning() << "PanelManager::slotCloseTab() - not closing tab" << index << panel->gui->isLocked();
}
benny