fix poppedRec ref when menu hides after + click

This commit is contained in:
Stewart Allen 2022-11-08 22:52:20 -05:00
commit 5d79a4fe41

View file

@ -25,6 +25,7 @@ let isAnimate,
current, current,
currentIndex, currentIndex,
flipping, flipping,
poppedRecOld,
poppedRec, poppedRec,
hoveredOp, hoveredOp,
API, FDM, SPACE, STACKS, MODES, VIEWS, UI, UC, LANG, MCAM; API, FDM, SPACE, STACKS, MODES, VIEWS, UI, UC, LANG, MCAM;
@ -483,7 +484,7 @@ CAM.init = function(kiri, api) {
unpop = func.unpop = el.unpop; unpop = func.unpop = el.unpop;
inside = true; inside = true;
// pointer to current rec for trace editing // pointer to current rec for trace editing
poppedRec = rec; poppedRec = poppedRecOld = rec;
popped = true; popped = true;
poprec.use(rec); poprec.use(rec);
hoveredOp = el; hoveredOp = el;
@ -812,7 +813,7 @@ CAM.init = function(kiri, api) {
func.surfaceAdd = (ev) => { func.surfaceAdd = (ev) => {
func.clearPops(); func.clearPops();
alert = api.show.alert("analyzing surfaces...", 1000); alert = api.show.alert("analyzing surfaces...", 1000);
let surfaces = poppedRec.surfaces; let surfaces = poppedRecOld.surfaces;
CAM.surface_prep(currentIndex * RAD2DEG, () => { CAM.surface_prep(currentIndex * RAD2DEG, () => {
api.hide.alert(alert); api.hide.alert(alert);
alert = api.show.alert("[esc] cancels surface editing"); alert = api.show.alert("[esc] cancels surface editing");
@ -842,7 +843,7 @@ CAM.init = function(kiri, api) {
if (!surfaceOn) { if (!surfaceOn) {
return; return;
} }
let surfaces = poppedRec.surfaces; let surfaces = poppedRecOld.surfaces;
for (let wid of Object.keys(surfaces)) { for (let wid of Object.keys(surfaces)) {
let widget = api.widgets.forid(wid); let widget = api.widgets.forid(wid);
if (widget) { if (widget) {
@ -882,7 +883,7 @@ CAM.init = function(kiri, api) {
widget.trace_stack.show(); widget.trace_stack.show();
return; return;
} }
let areas = (poppedRec.areas[widget.id] || []); let areas = (poppedRecOld.areas[widget.id] || []);
let stack = new kiri.Stack(widget.mesh); let stack = new kiri.Stack(widget.mesh);
widget.trace_stack = stack; widget.trace_stack = stack;
widget.traces.forEach(poly => { widget.traces.forEach(poly => {
@ -904,7 +905,7 @@ CAM.init = function(kiri, api) {
}); });
// ensure appropriate traces are toggled matching current record // ensure appropriate traces are toggled matching current record
kiri.api.widgets.for(widget => { kiri.api.widgets.for(widget => {
let areas = (poppedRec.areas[widget.id] || []); let areas = (poppedRecOld.areas[widget.id] || []);
let stack = widget.trace_stack; let stack = widget.trace_stack;
stack.meshes.forEach(mesh => { stack.meshes.forEach(mesh => {
let { poly } = mesh.trace; let { poly } = mesh.trace;
@ -918,7 +919,7 @@ CAM.init = function(kiri, api) {
} }
}); });
}); });
}, poppedRec.select === 'lines'); }, poppedRecOld.select === 'lines');
}; };
func.traceDone = () => { func.traceDone = () => {
if (!traceOn) { if (!traceOn) {
@ -1000,7 +1001,7 @@ CAM.init = function(kiri, api) {
let material = obj.material[0]; let material = obj.material[0];
let { color, colorSave } = material; let { color, colorSave } = material;
let { widget, poly } = obj.trace; let { widget, poly } = obj.trace;
let areas = poppedRec.areas; let areas = poppedRecOld.areas;
if (!areas) { if (!areas) {
return; return;
} }