Skip to content

Commit 3019436

Browse files
committed
Add willremovecolumn event to enable discarding Popover instances on multi-locus panel removal
1 parent fb79361 commit 3019436

File tree

3 files changed

+27
-13
lines changed

3 files changed

+27
-13
lines changed

css/dom.css.map

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

js/browser.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import MultiTrackSelectButton from "./ui/multiTrackSelectButton.js"
5656
import MenuUtils from "./ui/menuUtils.js"
5757
import Genome from "./genome/genome.js"
5858
import {setDefaults} from "./igv-create.js"
59+
import { trackViewportPopoverList } from './trackViewport.js'
5960

6061
// css - $igv-scrollbar-outer-width: 14px;
6162
const igv_scrollbar_outer_width = 14
@@ -141,6 +142,16 @@ class Browser {
141142
}
142143
})
143144

145+
this.on('willremovecolumn', column => {
146+
if (trackViewportPopoverList.length > 0) {
147+
const len = trackViewportPopoverList.length
148+
for (let i = 0; i < len; i++) {
149+
trackViewportPopoverList[ i ].dispose()
150+
}
151+
trackViewportPopoverList.length = 0
152+
}
153+
})
154+
144155
this.addMouseHandlers()
145156

146157
this.sampleInfo = new SampleInfo(this)
@@ -1579,6 +1590,9 @@ class Browser {
15791590
// find the $column corresponding to this referenceFrame and remove it
15801591
const index = this.referenceFrameList.indexOf(referenceFrame)
15811592
const {$viewport} = this.trackViews[0].viewports[index]
1593+
1594+
this.fireEvent('willremovecolumn', [ $viewport.parent().get(0) ]);
1595+
15821596
viewportColumnManager.removeColumnAtIndex(index, $viewport.parent().get(0))
15831597

15841598
for (let {viewports} of this.trackViews) {

0 commit comments

Comments
 (0)