Zwei Dinge:
1. embedded-Mode in den Dialog-Komponenten — wenn TRUE, kein Backdrop +
keine MaxWidth-Constraint, das Dialog fuellt das ganze WebView statt
wie ein kleines zentriertes Fenster IN dem WebView gerendert zu werden
(= "Fenster im Fenster"-Effekt). Betroffen:
- GeschossSettingsDialog
- EbenenSettingsDialog
- GeschossDialog
Satelliten-Apps (GeschossSettingsApp, EbenenSettingsApp,
GeschossDialogApp) passen jetzt `embedded` durch.
2. GeschossDialog (= der grosse Mehrfach-Editor hinter dem Pencil-Button)
laeuft jetzt auch als Satelliten-Fenster — selbe Architektur wie die
Settings-Dialoge. Backend hat neuen Handler _open_geschoss_dialog und
neuen Message OPEN_GESCHOSS_DIALOG. Auf Save: ganze z-Liste replace
+ _apply(save_z=True).
GeschossManager braucht den inline-Dialog-State nicht mehr; Pencil-Button
ruft openGeschossDialog(zeichnungsebenen).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Statt Overlay-im-Panel oeffnet sich der Settings-Dialog jetzt als
echtes Rhino-Fenster (verschiebbar, resizable, mehrere parallel).
Infrastruktur in panel_base.py:
- load_inline akzeptiert jetzt `params` (dict) und injiziert sie
als window.PANEL_PARAMS — Satelliten-Apps lesen ihren initialen
State daraus.
- Neue Funktion open_satellite_window(mode, params, title, size,
on_save, on_cancel): erstellt Eto.Forms.Form mit eingebetteter
WebView, eigenem Inline-Bridge fuer SAVE/CANCEL-Messages, ruft
Callbacks auf und schliesst das Fenster.
Backend rhinopanel.py:
- Neue Message-Handler OPEN_GESCHOSS_SETTINGS und OPEN_EBENEN_SETTINGS.
- _open_geschoss_settings: oeffnet das Satelliten-Fenster mit dem
Geschoss als Payload. on_save: replace im doc.Strings z-Liste +
_apply(save_z=True).
- _open_ebenen_settings: gleich, aber fuer Ebene + hatchPatterns.
Neue React-Entries:
- GeschossSettingsApp.jsx: wrappt GeschossSettingsDialog, liest
window.PANEL_PARAMS, schickt SAVE/CANCEL direkt via document.title-
Bridge.
- EbenenSettingsApp.jsx: gleich fuer EbenenSettingsDialog.
main.jsx-Switch erweitert um 'geschoss_settings' und 'ebenen_settings'.
GeschossManager und EbenenManager:
- Inline-Dialog-State und -Rendering entfernt.
- onSettings ruft jetzt openGeschossSettings(z) / openEbenenSettings(e)
in der Bridge auf → Backend oeffnet das Satelliten-Fenster.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>