pendingApplyLayout: auch skippen wenn marker matched
Log nach E zeigte ZWEI Apply-Auslöser hintereinander: 1. Cold-Start in _on_ready (setzt marker) → 4 Panels remountet 2. pendingApplyLayout vom Launcher (~Sekunden später) → applied erneut weil pending-Pfad keinen marker-Vergleich machte → 8 Panels remountet → doppelte Re-Mount-Welle, riesiger versteckter Cost. Fix: gleicher marker-Vergleich wie im _on_ready-Pfad. Wenn der gewuenschte Layout-Name bereits persistent angewendet wurde, skippen + pending-Flag trotzdem aus settings.json poppen. Force-Apply-Use-Case (User klickt "Jetzt anwenden" im Launcher): Launcher kann den marker vorher leeren (windowLayoutLastApplied="") um Re-Apply zu erzwingen — bisher nicht im Launcher implementiert, kommt bei Bedarf. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+12
-3
@@ -1175,9 +1175,18 @@ class OberleisteBridge(panel_base.BaseBridge):
|
|||||||
|
|
||||||
pend_layout = cfg.get("pendingApplyLayout")
|
pend_layout = cfg.get("pendingApplyLayout")
|
||||||
if isinstance(pend_layout, str) and pend_layout:
|
if isinstance(pend_layout, str) and pend_layout:
|
||||||
print("[OBERLEISTE] pendingApplyLayout:", pend_layout)
|
# Wenn das Layout bereits persistent angewendet wurde (z.B.
|
||||||
if _apply_window_layout(pend_layout):
|
# vom Cold-Start-Apply paar Sekunden vorher), skippen wir den
|
||||||
cfg["windowLayoutLastApplied"] = pend_layout
|
# 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)
|
cfg.pop("pendingApplyLayout", None)
|
||||||
mutated = True
|
mutated = True
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user