editor: refactor workspace window synchronization

This commit is contained in:
2026-04-26 11:17:57 +08:00
parent 4fcaac81d6
commit 57fe2cfd3b
17 changed files with 99 additions and 301 deletions

View File

@@ -32,7 +32,6 @@ public:
const EditorWindowDockHostBinding* TryGetDockHostBinding() const override;
const EditorWindowInputFeedbackBinding* TryGetInputFeedbackBinding() const override;
const EditorWindowTitleBarBinding* TryGetTitleBarBinding() const override;
const UIEditorWorkspaceController* TryGetWorkspaceController() const override;
const EditorWorkspaceWindowProjection* TryGetWorkspaceProjection() const override;
void RefreshWorkspaceProjection(EditorWorkspaceWindowProjection projection) override;
@@ -75,11 +74,12 @@ public:
std::string_view fallbackWindowTitle) const override;
private:
void RefreshProjectionFromWorkspaceController(bool primary = false);
void RestoreWorkspaceControllerFromProjection();
bool TryBuildAuthoritativeWorkspaceController(UIEditorWorkspaceController& outController) const;
void RefreshProjectionFromWorkspaceController(
const UIEditorWorkspaceController& workspaceController,
bool primary = false);
std::string m_windowId = {};
UIEditorWorkspaceController m_workspaceController = {};
EditorWindowSystem& m_windowSystem;
EditorWorkspaceWindowProjection m_projection = {};
EditorShellRuntime m_shellRuntime = {};