@@ -56,6 +56,7 @@ import MultiTrackSelectButton from "./ui/multiTrackSelectButton.js"
56
56
import MenuUtils from "./ui/menuUtils.js"
57
57
import Genome from "./genome/genome.js"
58
58
import { setDefaults } from "./igv-create.js"
59
+ import { trackViewportPopoverList } from './trackViewport.js'
59
60
60
61
// css - $igv-scrollbar-outer-width: 14px;
61
62
const igv_scrollbar_outer_width = 14
@@ -141,6 +142,16 @@ class Browser {
141
142
}
142
143
} )
143
144
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
+
144
155
this . addMouseHandlers ( )
145
156
146
157
this . sampleInfo = new SampleInfo ( this )
@@ -1579,6 +1590,9 @@ class Browser {
1579
1590
// find the $column corresponding to this referenceFrame and remove it
1580
1591
const index = this . referenceFrameList . indexOf ( referenceFrame )
1581
1592
const { $viewport} = this . trackViews [ 0 ] . viewports [ index ]
1593
+
1594
+ this . fireEvent ( 'willremovecolumn' , [ $viewport . parent ( ) . get ( 0 ) ] ) ;
1595
+
1582
1596
viewportColumnManager . removeColumnAtIndex ( index , $viewport . parent ( ) . get ( 0 ) )
1583
1597
1584
1598
for ( let { viewports} of this . trackViews ) {
0 commit comments