diff --git a/rhino/oberleiste.py b/rhino/oberleiste.py index d058748..d61e0c8 100644 --- a/rhino/oberleiste.py +++ b/rhino/oberleiste.py @@ -1175,9 +1175,18 @@ class OberleisteBridge(panel_base.BaseBridge): pend_layout = cfg.get("pendingApplyLayout") if isinstance(pend_layout, str) and pend_layout: - print("[OBERLEISTE] pendingApplyLayout:", pend_layout) - if _apply_window_layout(pend_layout): - cfg["windowLayoutLastApplied"] = pend_layout + # Wenn das Layout bereits persistent angewendet wurde (z.B. + # vom Cold-Start-Apply paar Sekunden vorher), skippen wir den + # Re-Apply. Sonst triggert es eine zweite Re-Mount-Welle (ALLE + # Panels nochmal). Force-Apply (vom User-Klick im Launcher) + # kann marker vorher leeren um zu erzwingen. + if cfg.get("windowLayoutLastApplied") == pend_layout: + print("[OBERLEISTE] pendingApplyLayout '{}' bereits " + "persistent angewendet — skip Re-Apply".format(pend_layout)) + else: + print("[OBERLEISTE] pendingApplyLayout:", pend_layout) + if _apply_window_layout(pend_layout): + cfg["windowLayoutLastApplied"] = pend_layout cfg.pop("pendingApplyLayout", None) mutated = True