From ecff440ceef3ad352aa64cedbb913107ec4863a5 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Tue, 25 Jun 2019 19:19:24 -0400 Subject: [PATCH] Fix regression with refresh --- Object3D.java | 41 ++++++++++++++++++++++++++++++++++------- 1 files changed, 34 insertions(+), 7 deletions(-) diff --git a/Object3D.java b/Object3D.java index 45bb2a6..c00f59b 100644 --- a/Object3D.java +++ b/Object3D.java @@ -181,7 +181,7 @@ return; } - Object3D o = new Object3D(); + Object3D o = new Object3D("copy of " + this.name); hashtable.put(GetUUID(), o); @@ -219,16 +219,23 @@ if (!hashtable.containsKey(GetUUID())) return; + if (blockloop) + return; + + blockloop = true; + Object3D o = hashtable.get(GetUUID()); RestoreBigData(o); - hashtable.remove(GetUUID()); + //hashtable.remove(GetUUID()); for (int i=0; i<Size(); i++) { get(i).RestoreBigData(hashtable); } + + blockloop = false; } void RestoreBigData(Object3D o) @@ -2433,6 +2440,14 @@ { editWindow.refreshContents(); } + else + { + if (manipWindow != null) + { + manipWindow.refreshContents(); + } + } + //if (parent != null) //parent.refreshEditWindow(); } @@ -4963,6 +4978,14 @@ } } + ObjEditor GetWindow() + { + if (editWindow != null) + return editWindow; + + return manipWindow; + } + cTreePath Select(int indexcount, boolean deselect) { if (hide || dontselect) @@ -4999,10 +5022,11 @@ if (leaf != null) { cTreePath tp = new cTreePath(this, leaf); - if (editWindow != null) + ObjEditor window = GetWindow(); + if (window != null) { //System.out.println("editWindow = " + editWindow + " vs " + this); - editWindow.Select(tp, deselect, true); + window.Select(tp, deselect, true); } return tp; @@ -5028,9 +5052,10 @@ if (leaf != null) { cTreePath tp = new cTreePath(this, leaf); - if (editWindow != null) + ObjEditor window = GetWindow(); + if (window != null) { - editWindow.Select(tp, deselect, true); + window.Select(tp, deselect, true); } return tp; @@ -5772,7 +5797,7 @@ if (!selectmode && //display.DrawMode() != display.SELECTION && //(touched || (bRep != null && bRep.displaylist <= 0))) - (Globals.isLIVE() && Globals.COMPUTESHADOWWHENLIVE || touched && (bRep != null && bRep.displaylist <= 0))) + (Globals.isLIVE() && Globals.COMPUTESHADOWWHENLIVE || touched || (bRep != null && bRep.displaylist <= 0))) { Globals.lighttouched = true; } // all panes... @@ -7967,6 +7992,8 @@ } transient ObjEditor editWindow; + transient ObjEditor manipWindow; + transient ObjectUI objectUI; public static int povDepth = 0; private static cVector tbMin = new cVector(); -- Gitblit v1.6.2