mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	when closing / clearing last tab, close all splits
This commit is contained in:
		| @@ -306,7 +306,8 @@ export default class TabManager extends Component { | ||||
|                 const mainNoteContexts = this.getNoteContexts().filter(nc => nc.isMainContext()); | ||||
|  | ||||
|                 if (mainNoteContexts.length === 1) { | ||||
|                     mainNoteContexts[0].setEmpty(); | ||||
|                     await this.clearLastMainNoteContext(noteContextToRemove); | ||||
|  | ||||
|                     return; | ||||
|                 } | ||||
|             } | ||||
| @@ -317,7 +318,7 @@ export default class TabManager extends Component { | ||||
|             const noteContextsToRemove = noteContextToRemove.getSubContexts(); | ||||
|             const ntxIdsToRemove = noteContextsToRemove.map(nc => nc.ntxId); | ||||
|  | ||||
|             await this.triggerEvent('beforeTabRemove', { ntxIds: ntxIdsToRemove }); | ||||
|             await this.triggerEvent('beforeNoteContextRemove', { ntxIds: ntxIdsToRemove }); | ||||
|  | ||||
|             if (!noteContextToRemove.isMainContext()) { | ||||
|                 await this.activateNoteContext(noteContextToRemove.getMainContext().ntxId); | ||||
| @@ -336,16 +337,39 @@ export default class TabManager extends Component { | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             this.children = this.children.filter(nc => !ntxIdsToRemove.includes(nc.ntxId)); | ||||
|  | ||||
|             this.recentlyClosedTabs.push(noteContextsToRemove); | ||||
|  | ||||
|             this.triggerEvent('noteContextRemoved', {ntxIds: ntxIdsToRemove}); | ||||
|  | ||||
|             this.tabsUpdate.scheduleUpdate(); | ||||
|             this.removeNoteContexts(noteContextsToRemove); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     async clearLastMainNoteContext(noteContextToClear) { | ||||
|         noteContextToClear.setEmpty(); | ||||
|  | ||||
|         // activate main split | ||||
|         await this.activateNoteContext(noteContextToClear.ntxId); | ||||
|  | ||||
|         // remove all other splits | ||||
|         const noteContextsToRemove = noteContextToClear.getSubContexts() | ||||
|             .filter(ntx => ntx.ntxId !== noteContextToClear.ntxId); | ||||
|  | ||||
|         const ntxIdsToRemove = noteContextsToRemove.map(ntx => ntx.ntxId); | ||||
|  | ||||
|         await this.triggerEvent('beforeNoteContextRemove', {ntxIds: ntxIdsToRemove}); | ||||
|  | ||||
|         this.removeNoteContexts(noteContextsToRemove); | ||||
|     } | ||||
|  | ||||
|     removeNoteContexts(noteContextsToRemove) { | ||||
|         const ntxIdsToRemove = noteContextsToRemove.map(nc => nc.ntxId); | ||||
|  | ||||
|         this.children = this.children.filter(nc => !ntxIdsToRemove.includes(nc.ntxId)); | ||||
|  | ||||
|         this.recentlyClosedTabs.push(noteContextsToRemove); | ||||
|  | ||||
|         this.triggerEvent('noteContextRemoved', {ntxIds: ntxIdsToRemove}); | ||||
|  | ||||
|         this.tabsUpdate.scheduleUpdate(); | ||||
|     } | ||||
|  | ||||
|     tabReorderEvent({ntxIdsInOrder}) { | ||||
|         const order = {}; | ||||
|  | ||||
|   | ||||
| @@ -216,7 +216,7 @@ export default class NoteDetailWidget extends NoteContextAwareWidget { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     async beforeTabRemoveEvent({ntxIds}) { | ||||
|     async beforeNoteContextRemoveEvent({ntxIds}) { | ||||
|         if (this.isNoteContext(ntxIds)) { | ||||
|             await this.spacedUpdate.updateNowIfNecessary(); | ||||
|         } | ||||
|   | ||||
| @@ -87,7 +87,7 @@ export default class NoteTitleWidget extends NoteContextAwareWidget { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     async beforeTabRemoveEvent({ntxIds}) { | ||||
|     async beforeNoteContextRemoveEvent({ntxIds}) { | ||||
|         if (this.isNoteContext(ntxIds)) { | ||||
|             await this.spacedUpdate.updateNowIfNecessary(); | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user