@@ -19,7 +19,8 @@ var polygon = require('../../lib/polygon');
19
19
var throttle = require ( '../../lib/throttle' ) ;
20
20
var makeEventData = require ( '../../components/fx/helpers' ) . makeEventData ;
21
21
var getFromId = require ( './axis_ids' ) . getFromId ;
22
- var sortModules = require ( '../sort_modules' ) . sortModules ;
22
+ var clearGlCanvases = require ( '../../lib/clear_gl_canvases' ) ;
23
+ var redrawReglTraces = require ( '../../plot_api/subroutines' ) . redrawReglTraces ;
23
24
24
25
var constants = require ( './constants' ) ;
25
26
var MINSELECT = constants . MINSELECT ;
@@ -663,7 +664,7 @@ function isOnlyOnePointSelected(searchTraces) {
663
664
}
664
665
665
666
function updateSelectedState ( gd , searchTraces , eventData ) {
666
- var i , j , searchInfo , trace ;
667
+ var i , searchInfo , cd , trace ;
667
668
668
669
if ( eventData ) {
669
670
var pts = eventData . points || [ ] ;
@@ -696,43 +697,25 @@ function updateSelectedState(gd, searchTraces, eventData) {
696
697
}
697
698
}
698
699
699
- // group searchInfo traces by trace modules
700
- var lookup = { } ;
700
+ var hasRegl = false ;
701
701
702
702
for ( i = 0 ; i < searchTraces . length ; i ++ ) {
703
703
searchInfo = searchTraces [ i ] ;
704
+ cd = searchInfo . cd ;
705
+ trace = cd [ 0 ] . trace ;
704
706
705
- var name = searchInfo . _module . name ;
706
- if ( lookup [ name ] ) {
707
- lookup [ name ] . push ( searchInfo ) ;
708
- } else {
709
- lookup [ name ] = [ searchInfo ] ;
707
+ if ( Registry . traceIs ( trace , 'regl' ) ) {
708
+ hasRegl = true ;
710
709
}
710
+
711
+ var _module = searchInfo . _module ;
712
+ var fn = _module . styleOnSelect || _module . style ;
713
+ if ( fn ) fn ( gd , cd ) ;
711
714
}
712
715
713
- var keys = Object . keys ( lookup ) . sort ( sortModules ) ;
714
-
715
- for ( i = 0 ; i < keys . length ; i ++ ) {
716
- var items = lookup [ keys [ i ] ] ;
717
- var len = items . length ;
718
- var item0 = items [ 0 ] ;
719
- var trace0 = item0 . cd [ 0 ] . trace ;
720
- var _module = item0 . _module ;
721
- var styleSelection = _module . styleOnSelect || _module . style ;
722
-
723
- if ( Registry . traceIs ( trace0 , 'regl' ) ) {
724
- // plot regl traces per module
725
- var cds = new Array ( len ) ;
726
- for ( j = 0 ; j < len ; j ++ ) {
727
- cds [ j ] = items [ j ] . cd ;
728
- }
729
- styleSelection ( gd , cds ) ;
730
- } else {
731
- // plot svg trace per trace
732
- for ( j = 0 ; j < len ; j ++ ) {
733
- styleSelection ( gd , items [ j ] . cd ) ;
734
- }
735
- }
716
+ if ( hasRegl ) {
717
+ clearGlCanvases ( gd ) ;
718
+ redrawReglTraces ( gd ) ;
736
719
}
737
720
}
738
721
0 commit comments