Skip to content

Commit d4a2b1c

Browse files
committed
Use private member for frame painter
1 parent c91ead2 commit d4a2b1c

File tree

4 files changed

+28
-12
lines changed

4 files changed

+28
-12
lines changed

modules/gpad/RFramePainter.mjs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -626,9 +626,7 @@ class RFramePainter extends RObjectPainter {
626626
delete this._click_handler;
627627
delete this._dblclick_handler;
628628

629-
const pp = this.getPadPainter();
630-
if (pp?.frame_painter_ref === this)
631-
delete pp.frame_painter_ref;
629+
this.getPadPainter()?.setFramePainter(this, false);
632630

633631
super.cleanup();
634632
}
@@ -637,7 +635,7 @@ class RFramePainter extends RObjectPainter {
637635
* @private */
638636
redraw() {
639637
const pp = this.getPadPainter();
640-
if (pp) pp.frame_painter_ref = this;
638+
pp?.setFramePainter(this, true);
641639

642640
// first update all attributes from objects
643641
this.updateAttributes();

modules/gpad/RPadPainter.mjs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class RPadPainter extends RObjectPainter {
2525
#pad_height; // pad height
2626
#doing_draw; // drawing handles
2727
#custom_palette; // custom palette
28+
#frame_painter_ref; // frame painter
2829

2930
/** @summary constructor */
3031
constructor(dom, pad, iscan) {
@@ -109,7 +110,7 @@ class RPadPainter extends RObjectPainter {
109110
if (cp) delete cp.pads_cache;
110111

111112
delete this.main_painter_ref;
112-
delete this.frame_painter_ref;
113+
this.#frame_painter_ref = undefined;
113114
this.#pad_x = this.#pad_y = this.#pad_width = this.#pad_height = undefined;
114115
this.#doing_draw = undefined;
115116
delete this._dfltRFont;
@@ -128,7 +129,16 @@ class RPadPainter extends RObjectPainter {
128129

129130
/** @summary Returns frame painter inside the pad
130131
* @private */
131-
getFramePainter() { return this.frame_painter_ref; }
132+
getFramePainter() { return this.#frame_painter_ref; }
133+
134+
/** @summary Assign actual frame painter
135+
* @private */
136+
setFramePainter(fp, on) {
137+
if (on)
138+
this.#frame_painter_ref = fp;
139+
else if (this.#frame_painter_ref === fp)
140+
this.#frame_painter_ref = undefined;
141+
}
132142

133143
/** @summary get pad width */
134144
getPadWidth() { return this.#pad_width || 0; }

modules/gpad/TFramePainter.mjs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2481,17 +2481,15 @@ class TFramePainter extends ObjectPainter {
24812481
delete this._dblclick_handler;
24822482
delete this.enabledKeys;
24832483

2484-
const pp = this.getPadPainter();
2485-
if (pp?.frame_painter_ref === this)
2486-
delete pp.frame_painter_ref;
2484+
this.getPadPainter()?.setFramePainter(this, false);
24872485

24882486
super.cleanup();
24892487
}
24902488

24912489
/** @summary Redraw TFrame */
24922490
redraw(/* reason */) {
24932491
const pp = this.getPadPainter();
2494-
if (pp) pp.frame_painter_ref = this; // keep direct reference to the frame painter
2492+
pp?.setFramePainter(this, true);
24952493

24962494
// first update all attributes from objects
24972495
this.updateAttributes();

modules/gpad/TPadPainter.mjs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ class TPadPainter extends ObjectPainter {
215215
#custom_colors; // custom colors
216216
#custom_palette_indexes; // custom palette indexes
217217
#custom_palette_colors; // custom palette colors
218+
#frame_painter_ref; // frame painter
218219

219220
/** @summary constructor
220221
* @param {object|string} dom - DOM element for drawing or element id
@@ -295,7 +296,7 @@ class TPadPainter extends ObjectPainter {
295296
}
296297

297298
delete this.main_painter_ref;
298-
delete this.frame_painter_ref;
299+
this.#frame_painter_ref = undefined;
299300
const cp = this.iscan || !this.has_canvas ? this : this.getCanvPainter();
300301
if (cp) delete cp.pads_cache;
301302
this.#pad_x = this.#pad_y = this.#pad_width = this.#pad_height = undefined;
@@ -317,7 +318,16 @@ class TPadPainter extends ObjectPainter {
317318

318319
/** @summary Returns frame painter inside the pad
319320
* @private */
320-
getFramePainter() { return this.frame_painter_ref; }
321+
getFramePainter() { return this.#frame_painter_ref; }
322+
323+
/** @summary Assign actual frame painter
324+
* @private */
325+
setFramePainter(fp, on) {
326+
if (on)
327+
this.#frame_painter_ref = fp;
328+
else if (this.#frame_painter_ref === fp)
329+
this.#frame_painter_ref = undefined;
330+
}
321331

322332
/** @summary get pad width */
323333
getPadWidth() { return this.#pad_width || 0; }

0 commit comments

Comments
 (0)