diff --git a/src/public/app/services/link.js b/src/public/app/services/link.js index 36c2bb992..261f85465 100644 --- a/src/public/app/services/link.js +++ b/src/public/app/services/link.js @@ -81,8 +81,17 @@ function goToLink(e) { appContext.tabManager.openTabWithNoteWithHoisting(notePath); } else if (e.which === 1) { - const activeTabContext = appContext.tabManager.getActiveTabContext(); - activeTabContext.setNote(notePath); + const tabId = $(e.target).closest("[data-tab-id]").attr("data-tab-id"); + + const tabContext = tabId + ? appContext.tabManager.getTabContextById(tabId) + : appContext.tabManager.getActiveTabContext(); + + tabContext.setNote(notePath).then(() => { + if (tabContext !== appContext.tabManager.getActiveTabContext()) { + appContext.tabManager.activateTab(tabContext.tabId); + } + }); } } else { diff --git a/src/public/app/widgets/containers/pane_container.js b/src/public/app/widgets/containers/pane_container.js index 7b5fb51a4..292119a37 100644 --- a/src/public/app/widgets/containers/pane_container.js +++ b/src/public/app/widgets/containers/pane_container.js @@ -19,7 +19,7 @@ export default class PaneContainer extends FlexContainer { const $renderedWidget = widget.render(); - $renderedWidget.attr("data-main-tab-id", tabContext.tabId); + $renderedWidget.attr("data-tab-id", tabContext.tabId); $renderedWidget.on('click', () => appContext.tabManager.activateTab(tabContext.tabId)); @@ -79,6 +79,10 @@ export default class PaneContainer extends FlexContainer { const promises = []; + if (appContext.tabManager.getActiveTabContext().getMainTabContext() === data.tabContext.getMainTabContext()) { + promises.push(widget.handleEvent('activeTabChanged', data)); + } + for (const subTabContext of data.tabContext.getMainTabContext().getAllSubTabContexts()) { const subWidget = this.widgets[subTabContext.tabId];