@@ -28,6 +28,8 @@ var prepSelect = require('../cartesian/select').prepSelect;
28
28
var selectOnClick = require ( '../cartesian/select' ) . selectOnClick ;
29
29
var clearSelect = require ( '../cartesian/select' ) . clearSelect ;
30
30
var setCursor = require ( '../../lib/setcursor' ) ;
31
+ var clearGlCanvases = require ( '../../lib/clear_gl_canvases' ) ;
32
+ var redrawReglTraces = require ( '../../plot_api/subroutines' ) . redrawReglTraces ;
31
33
32
34
var MID_SHIFT = require ( '../../constants/alignment' ) . MID_SHIFT ;
33
35
var constants = require ( './constants' ) ;
@@ -1058,14 +1060,20 @@ proto.updateRadialDrag = function(fullLayout, polarLayout, rngIndex) {
1058
1060
. attr ( 'transform' , strTranslate ( cx , cy ) )
1059
1061
. selectAll ( 'path' ) . attr ( 'transform' , null ) ;
1060
1062
1061
- if ( _this . _scene ) _this . _scene . clear ( ) ;
1063
+ var hasRegl = false ;
1062
1064
1063
1065
for ( var traceType in _this . traceHash ) {
1064
1066
var moduleCalcData = _this . traceHash [ traceType ] ;
1065
1067
var moduleCalcDataVisible = Lib . filterVisible ( moduleCalcData ) ;
1066
1068
var _module = moduleCalcData [ 0 ] [ 0 ] . trace . _module ;
1067
1069
var polarLayoutNow = gd . _fullLayout [ _this . id ] ;
1068
1070
_module . plot ( gd , _this , moduleCalcDataVisible , polarLayoutNow ) ;
1071
+ if ( Registry . traceIs ( traceType , 'gl' ) && moduleCalcDataVisible . length ) hasRegl = true ;
1072
+ }
1073
+
1074
+ if ( hasRegl ) {
1075
+ clearGlCanvases ( gd ) ;
1076
+ redrawReglTraces ( gd ) ;
1069
1077
}
1070
1078
}
1071
1079
@@ -1185,16 +1193,22 @@ proto.updateAngularDrag = function(fullLayout) {
1185
1193
scatterTraces . call ( Drawing . hideOutsideRangePoints , _this ) ;
1186
1194
}
1187
1195
1188
- if ( _this . _scene ) _this . _scene . clear ( ) ;
1196
+ var hasRegl = false ;
1189
1197
1190
1198
for ( var traceType in _this . traceHash ) {
1191
1199
if ( Registry . traceIs ( traceType , 'gl' ) ) {
1192
1200
var moduleCalcData = _this . traceHash [ traceType ] ;
1193
1201
var moduleCalcDataVisible = Lib . filterVisible ( moduleCalcData ) ;
1194
1202
var _module = moduleCalcData [ 0 ] [ 0 ] . trace . _module ;
1195
1203
_module . plot ( gd , _this , moduleCalcDataVisible , polarLayoutNow ) ;
1204
+ if ( moduleCalcDataVisible . length ) hasRegl = true ;
1196
1205
}
1197
1206
}
1207
+
1208
+ if ( hasRegl ) {
1209
+ clearGlCanvases ( gd ) ;
1210
+ redrawReglTraces ( gd ) ;
1211
+ }
1198
1212
}
1199
1213
1200
1214
function doneFn ( ) {
0 commit comments