Idle: bail bei User-Transform (Move/Drag/Gumball) — Element bleibt zusammen
Der Idle-Handler verarbeitet Pending-Regens + Cascade-Queues. Lief bislang auch waehrend _UT_ACTIVE_KEY (Move/Gumball/Drag), debounct nur ueber last_replace_time. Auf Mac feuert Move aber teils via Delete+Re-Add statt Replace → debounce greift nicht zuverlaessig, Idle koennte mitten in einem Move ein Volume regenerieren und damit die Geometrie unter Rhinos Transform wegziehen → einzelne Sub-Volumen blieben am alten Ort, Element zerfaellt optisch. Fix: idle bail bei _UT_ACTIVE_KEY. CommandEnd der Transform-Cmds sync't Volumen selber, dort werden die Regens richtig in den Transform-Undo-Record gefaltet. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -9240,6 +9240,12 @@ def _on_idle_selection(sender, e):
|
||||
# Waehrend Bulk-Op (z.B. _Delete bei 6000 OSM-Curves): nicht pollen.
|
||||
# Wuerde sonst pro Idle-Tick alle Objekte iterieren = Quasi-Stall.
|
||||
if sc.sticky.get(_BULK_ACTIVE_KEY): return
|
||||
# Waehrend User-Transform (Move/Drag/Gumball): keine Regen-/Cascade-
|
||||
# Verarbeitung. Sonst kann ein gequeuter Regen die Geometrie wegziehen
|
||||
# die Rhino gerade interaktiv transformiert → Element zerfaellt
|
||||
# waehrend des Verschiebens. Die Transform-CommandEnd-Logik kuemmert
|
||||
# sich selber um Volume-Sync am Ende.
|
||||
if sc.sticky.get(_UT_ACTIVE_KEY): return
|
||||
b = sc.sticky.get("elemente_bridge")
|
||||
if b is None: return
|
||||
doc = Rhino.RhinoDoc.ActiveDoc
|
||||
|
||||
Reference in New Issue
Block a user