@@ -435,55 +435,70 @@ drawing.selectedPointStyle = function(s, trace) {
435
435
var selectedAttrs = trace . selected || { } ;
436
436
var unselectedAttrs = trace . unselected || { } ;
437
437
438
- s . style ( 'opacity' , function ( d ) {
439
- return d . selected ?
440
- ( selectedAttrs . marker || { } ) . opacity :
441
- ( unselectedAttrs . marker || { } ) . opacity ;
442
- } ) ;
438
+ var marker = trace . marker || { } ;
439
+ var selectedMarker = selectedAttrs . marker || { } ;
440
+ var unselectedMarker = unselectedAttrs . marker || { } ;
443
441
444
- // which is slightly different than:
445
- // ((d.mo + 1 || opacity + 1) - 1) * (d.dim ? DESELECTDIM : 1) ;
446
- // in https://github.com/plotly/plotly.js/blob/master/src/traces/scatter/select.js
442
+ var mo = marker . opacity ;
443
+ var smo = selectedMarker . opacity ;
444
+ var usmo = unselectedMarker . opacity ;
447
445
448
446
s . each ( function ( d ) {
449
447
var pt = d3 . select ( this ) ;
450
- var marker = trace . marker || { } ;
451
- var selectedMarker = selectedAttrs . marker || { } ;
452
- var unselectedMarker = unselectedAttrs . marker || { } ;
453
-
454
- var smc = selectedMarker . color ;
455
- var usmc = unselectedMarker . color ;
448
+ var mo2 ;
456
449
457
- if ( d . selected ) {
458
- if ( smc ) Color . fill ( pt , smc ) ;
459
- } else {
460
- if ( usmc ) Color . fill ( pt , usmc ) ;
450
+ if ( d . mo + 1 || smo || usmo ) {
451
+ if ( d . selected ) {
452
+ if ( smo + 1 ) mo2 = smo ;
453
+ } else {
454
+ if ( usmo + 1 ) mo2 = usmo ;
455
+ else mo2 = DESELECTDIM * ( ( d . mo + 1 ) ? d . mo : mo ) ;
456
+ }
461
457
}
462
458
463
- if ( Registry . traceIs ( trace , 'symbols' ) ) {
464
- var sms = selectedMarker . size ;
465
- var smx = selectedMarker . symbol ;
466
- var usms = unselectedMarker . size ;
467
- var usmx = unselectedMarker . symbol ;
459
+ if ( mo2 + 1 ) pt . style ( 'opacity' , mo2 ) ;
460
+ } ) ;
461
+
462
+ var smc = selectedMarker . color ;
463
+ var usmc = unselectedMarker . color ;
464
+
465
+ if ( smc || usmc ) {
466
+ s . each ( function ( d ) {
467
+ var pt = d3 . select ( this ) ;
468
+ var mc2 ;
469
+
470
+ if ( d . selected ) {
471
+ if ( smc ) mc2 = smc ;
472
+ } else {
473
+ if ( usmc ) mc2 = usmc ;
474
+ }
475
+
476
+ if ( mc2 ) Color . fill ( pt , mc2 ) ;
477
+ } ) ;
478
+ }
479
+
480
+ var sms = selectedMarker . size ;
481
+ var usms = unselectedMarker . size ;
482
+
483
+ if ( Registry . traceIs ( trace , 'symbols' ) && ( sms + 1 || usms + 1 ) ) {
484
+ s . each ( function ( d ) {
485
+ var pt = d3 . select ( this ) ;
468
486
var mrc = d . mrc ;
469
487
var mx = d . mx || marker . symbol || 0 ;
470
488
var mrc2 ;
471
- var mx2 ;
472
489
473
490
if ( d . selected ) {
474
491
mrc2 = ( sms + 1 ) ? sms / 2 : mrc ;
475
- mx2 = smx || mx ;
476
492
} else {
477
493
mrc2 = ( usms + 1 ) ? usms / 2 : mrc ;
478
- mx2 = usmx || mx ;
479
494
}
480
495
496
+ pt . attr ( 'd' , makePointPath ( drawing . symbolNumber ( mx ) , mrc2 ) ) ;
497
+
481
498
// save for selectedTextStyle
482
499
d . mrc2 = mrc2 ;
483
-
484
- pt . attr ( 'd' , makePointPath ( drawing . symbolNumber ( mx2 ) , mrc2 ) ) ;
485
- }
486
- } ) ;
500
+ } ) ;
501
+ }
487
502
} ;
488
503
489
504
drawing . tryColorscale = function ( marker , prefix ) {
@@ -572,13 +587,12 @@ drawing.selectedTextStyle = function(s, trace) {
572
587
573
588
if ( d . selected ) {
574
589
if ( stc ) tc2 = stc ;
575
- else tc2 = Color . addOpacity ( tc , 1 ) ;
576
590
} else {
577
591
if ( utc ) tc2 = utc ;
578
- else tc2 = Color . addOpacity ( tc , DESELECTDIM ) ;
592
+ else if ( ! stc ) tc2 = Color . addOpacity ( tc , DESELECTDIM ) ;
579
593
}
580
594
581
- Color . fill ( tx , tc2 ) ;
595
+ if ( tc2 ) Color . fill ( tx , tc2 ) ;
582
596
textPointPosition ( tx , tp , fontSize , d . mrc2 || d . mrc ) ;
583
597
} ) ;
584
598
} ;
0 commit comments