Splash + Layout-Skip-Revert

User-Bug: Layout-Skip-Optimierung war zu aggressiv — Mac Rhino haelt die
Panel-Anordnung zwischen Sessions doch nicht im internen State, also
wurden Panels falsch platziert nach Quick-Restart. Skip-Logik raus, der
~3s _-WindowLayout-Apply laeuft wieder jedes Mal. Das ist OK weil der
Splash diese Wartezeit jetzt optisch abdeckt.

Splash verbessert:
- _try_borderless_mac(): direkter NSWindow-Zugriff via Eto.ControlObject
  + ObjC-Methoden (setStyleMask_, setOpaque_, setHasShadow_,
  setBackgroundColor_, setMovableByWindowBackground_) — produziert
  echten borderless Mac-Look wie der Launcher-Splash
- Form-BackgroundColor auf transparent damit das gradient des WebView-
  HTMLs durchscheint (rounded petrol gradient mit weichem Verlauf)
- WebView selber transparenter Hintergrund
- Closeable/Minimizable/Maximizable/Resizable alle False
- [SPLASH] visible log fuer Debug-Sichtbarkeit
This commit is contained in:
2026-05-27 19:36:09 +02:00
parent 6a13ede6b7
commit 264327432d
2 changed files with 86 additions and 28 deletions
+5 -14
View File
@@ -1353,26 +1353,17 @@ class OberleisteBridge(panel_base.BaseBridge):
# Default-Window-Layout anwenden, wenn aktiviert und noch nicht in
# DIESER Rhino-Session geschehen (sticky-flag = process-lifetime).
# Mac Rhino persistiert die Window-Anordnung zwischen Sessions
# NICHT zuverlaessig — der Cold-Start-Apply lief bisher jedes Mal
# (= ~3s _-WindowLayout RunScript-Blocker).
# Optimierung: Marker-File mit Timestamp + Name. Wenn der letzte
# erfolgreiche Apply < 10 min her ist UND derselbe Layout-Name → skip
# (Rhino "remembers" wahrscheinlich noch). Bei langem Abstand
# (Pause, neuer Tag, Reboot) → apply normal.
# NICHT zuverlaessig — der Cold-Start-Apply muss jedes Mal laufen.
# Die 3s Wartezeit verdeckt jetzt der Splash-Screen optisch.
try:
cfg = _settings_load()
if not sc.sticky.get("_dossier_layout_applied"):
layout_name = cfg.get("windowLayout") or cfg.get("defaultLayout")
if cfg.get("autoApplyLayout") and layout_name:
sc.sticky["_dossier_layout_applied"] = True
if _is_layout_recently_applied(layout_name, max_age_sec=600):
print("[OBERLEISTE] Layout '{}' wurde vor < 10min "
"appliziert — skip (~3s gespart). Manuell neu "
"anwenden via Oberleiste-Einstellungen wenn noetig.".format(
layout_name))
else:
_apply_window_layout(layout_name)
_mark_layout_applied(layout_name)
_apply_window_layout(layout_name)
try: _mark_layout_applied(layout_name)
except Exception: pass
# Viewport-Colors einmalig pro Session auto-applien (wenn aktiviert)
if (cfg.get("autoApplyViewColors") and
not sc.sticky.get("_dossier_view_colors_applied")):