@@ -6,6 +6,8 @@ var bomsplit;
66var canvassplit ;
77var canvaslayout = "default" ;
88var bomlayout = "default" ;
9+ var currentHighlightedRowId ;
10+ var highlightHandlers = [ ] ;
911var highlightedRefs = [ ] ;
1012var bomCheckboxes = "" ;
1113var storage ;
@@ -105,8 +107,16 @@ function createCheckboxChangeHandler(checkbox, references) {
105107 }
106108}
107109
108- function createRowMouseEnterHandler ( refs ) {
110+ function createRowHighlightHandler ( rowid , refs ) {
109111 return function ( ) {
112+ if ( currentHighlightedRowId ) {
113+ if ( currentHighlightedRowId == rowid ) {
114+ return ;
115+ }
116+ document . getElementById ( currentHighlightedRowId ) . classList . remove ( "highlighted" ) ;
117+ }
118+ document . getElementById ( rowid ) . classList . add ( "highlighted" ) ;
119+ currentHighlightedRowId = rowid ;
110120 highlightedRefs = refs ;
111121 drawHighlights ( ) ;
112122 }
@@ -196,6 +206,7 @@ function populateBomHeader() {
196206}
197207
198208function populateBomBody ( ) {
209+ highlightHandlers = [ ] ;
199210 var first = true ;
200211 switch ( canvaslayout ) {
201212 case 'F' :
@@ -255,7 +266,9 @@ function populateBomBody() {
255266 td . textContent = bomentry [ 3 ] . length ;
256267 tr . appendChild ( td ) ;
257268 bom . appendChild ( tr ) ;
258- tr . onmouseenter = createRowMouseEnterHandler ( references ) ;
269+ var handler = createRowHighlightHandler ( tr . id , references ) ;
270+ tr . onmouseenter = handler ;
271+ highlightHandlers . push ( { id : tr . id , handler : handler } ) ;
259272 if ( ( filter || reflookup ) && first ) {
260273 highlightedRefs = references ;
261274 drawHighlights ( ) ;
0 commit comments