@@ -26,6 +26,7 @@ class RPadPainter extends RObjectPainter {
2626 #doing_draw; // drawing handles
2727 #custom_palette; // custom palette
2828 #frame_painter_ref; // frame painter
29+ #main_painter_ref; // main painter on the pad
2930
3031 /** @summary constructor */
3132 constructor ( dom , pad , iscan ) {
@@ -75,22 +76,18 @@ class RPadPainter extends RObjectPainter {
7576
7677 /** @summary Returns SVG element for the pad itself
7778 * @private */
78- svg_this_pad ( ) {
79- return this . getPadSvg ( this . this_pad_name ) ;
80- }
79+ svg_this_pad ( ) { return this . getPadSvg ( this . this_pad_name ) ; }
8180
8281 /** @summary Returns main painter on the pad
8382 * @desc Typically main painter is TH1/TH2 object which is drawing axes
8483 * @private */
85- getMainPainter ( ) {
86- return this . main_painter_ref || null ;
87- }
84+ getMainPainter ( ) { return this . #main_painter_ref || null ; }
8885
8986 /** @summary Assign main painter on the pad
9087 * @private */
9188 setMainPainter ( painter , force ) {
92- if ( ! this . main_painter_ref || force )
93- this . main_painter_ref = painter ;
89+ if ( ! this . # main_painter_ref || force )
90+ this . # main_painter_ref = painter ;
9491 }
9592
9693 /** @summary cleanup pad and all primitives inside */
@@ -109,7 +106,7 @@ class RPadPainter extends RObjectPainter {
109106 const cp = this . iscan || ! this . has_canvas ? this : this . getCanvPainter ( ) ;
110107 if ( cp ) delete cp . pads_cache ;
111108
112- delete this . main_painter_ref ;
109+ this . # main_painter_ref = undefined ;
113110 this . #frame_painter_ref = undefined ;
114111 this . #pad_x = this . #pad_y = this . #pad_width = this . #pad_height = undefined ;
115112 this . #doing_draw = undefined ;
@@ -252,8 +249,8 @@ class RPadPainter extends RObjectPainter {
252249 arr . forEach ( painter => {
253250 if ( ( painter !== prim ) || ! clean_only_secondary )
254251 painter . cleanup ( ) ;
255- if ( this . main_painter_ref === painter ) {
256- delete this . main_painter_ref ;
252+ if ( this . getMainPainter ( ) === painter ) {
253+ delete this . setMainPainter ( undefined , true ) ;
257254 resindx = - 111 ;
258255 }
259256 } ) ;
@@ -1298,7 +1295,7 @@ class RPadPainter extends RObjectPainter {
12981295 const old_painters = this . painters ;
12991296 this . painters = [ ] ;
13001297 old_painters . forEach ( objp => objp . cleanup ( ) ) ;
1301- delete this . main_painter_ref ;
1298+ this . setMainPainter ( undefined , true ) ;
13021299 if ( isFunc ( this . removePadButtons ) )
13031300 this . removePadButtons ( ) ;
13041301 this . addPadButtons ( true ) ;
0 commit comments