@@ -1815,8 +1815,7 @@ function _relayout(gd, aobj) {
1815
1815
// trunk nodes (everything except the leaf)
1816
1816
ptrunk = p . parts . slice ( 0 , pend ) . join ( '.' ) ,
1817
1817
parentIn = Lib . nestedProperty ( gd . layout , ptrunk ) . get ( ) ,
1818
- parentFull = Lib . nestedProperty ( fullLayout , ptrunk ) . get ( ) ,
1819
- diff ;
1818
+ parentFull = Lib . nestedProperty ( fullLayout , ptrunk ) . get ( ) ;
1820
1819
1821
1820
if ( vi === undefined ) continue ;
1822
1821
@@ -1950,42 +1949,17 @@ function _relayout(gd, aobj) {
1950
1949
drawOne ( gd , objNum , p . parts . slice ( 2 ) . join ( '.' ) , aobj [ ai ] ) ;
1951
1950
delete aobj [ ai ] ;
1952
1951
}
1953
- else if ( p . parts [ 0 ] === 'images' ) {
1954
- var update = Lib . objectFromPath ( ai , vi ) ;
1955
- Lib . extendDeepAll ( gd . layout , update ) ;
1952
+ else if (
1953
+ Plots . layoutArrayContainers . indexOf ( p . parts [ 0 ] ) !== - 1 ||
1954
+ ( p . parts [ 0 ] === 'mapbox' && p . parts [ 1 ] === 'layers' )
1955
+ ) {
1956
1956
1957
- Registry . getComponentMethod ( 'images' , 'supplyLayoutDefaults' ) ( gd . layout , gd . _fullLayout ) ;
1958
- Registry . getComponentMethod ( 'images' , 'draw' ) ( gd ) ;
1959
- }
1960
- else if ( p . parts [ 0 ] === 'mapbox' && p . parts [ 1 ] === 'layers' ) {
1961
- Lib . extendDeepAll ( gd . layout , Lib . objectFromPath ( ai , vi ) ) ;
1962
-
1963
- // append empty container to mapbox.layers
1964
- // so that relinkPrivateKeys does not complain
1965
-
1966
- var fullLayers = ( gd . _fullLayout . mapbox || { } ) . layers || [ ] ;
1967
- diff = ( p . parts [ 2 ] + 1 ) - fullLayers . length ;
1968
-
1969
- for ( i = 0 ; i < diff ; i ++ ) fullLayers . push ( { } ) ;
1970
-
1971
- flags . doplot = true ;
1972
- }
1973
- else if ( p . parts [ 0 ] === 'updatemenus' ) {
1974
- Lib . extendDeepAll ( gd . layout , Lib . objectFromPath ( ai , vi ) ) ;
1975
-
1976
- var menus = gd . _fullLayout . updatemenus || [ ] ;
1977
- diff = ( p . parts [ 2 ] + 1 ) - menus . length ;
1978
-
1979
- for ( i = 0 ; i < diff ; i ++ ) menus . push ( { } ) ;
1980
- flags . doplot = true ;
1981
- }
1982
- else if ( p . parts [ 0 ] === 'sliders' ) {
1983
- Lib . extendDeepAll ( gd . layout , Lib . objectFromPath ( ai , vi ) ) ;
1984
-
1985
- var sliders = gd . _fullLayout . sliders || [ ] ;
1986
- diff = ( p . parts [ 2 ] + 1 ) - sliders . length ;
1957
+ // if adding a new item, make sure undo will remove it
1958
+ if ( isNumeric ( p . parts [ plen - 1 ] ) && p . get ( ) === undefined ) {
1959
+ undoit [ ai ] = null ;
1960
+ }
1987
1961
1988
- for ( i = 0 ; i < diff ; i ++ ) sliders . push ( { } ) ;
1962
+ p . set ( vi ) ;
1989
1963
flags . doplot = true ;
1990
1964
}
1991
1965
// alter gd.layout
0 commit comments