new_editor: make window sync rollback safe
This commit is contained in:
@@ -385,12 +385,15 @@ UIEditorWindowWorkspaceSet EditorWindowWorkspaceCoordinator::BuildWindowWorkspac
|
||||
UIEditorWindowWorkspaceSet windowSet = {};
|
||||
if (const EditorWindow* primaryWindow = m_hostRuntime.FindPrimaryWindow();
|
||||
primaryWindow != nullptr &&
|
||||
primaryWindow->GetHwnd() != nullptr) {
|
||||
primaryWindow->GetHwnd() != nullptr &&
|
||||
!primaryWindow->IsClosing()) {
|
||||
windowSet.primaryWindowId = std::string(primaryWindow->GetWindowId());
|
||||
}
|
||||
|
||||
for (const std::unique_ptr<EditorWindow>& window : m_hostRuntime.GetWindows()) {
|
||||
if (window == nullptr || window->GetHwnd() == nullptr) {
|
||||
if (window == nullptr ||
|
||||
window->GetHwnd() == nullptr ||
|
||||
window->IsClosing()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -405,7 +408,9 @@ UIEditorWindowWorkspaceSet EditorWindowWorkspaceCoordinator::BuildWindowWorkspac
|
||||
!activeWindowId.empty() &&
|
||||
([this, activeWindowId]() {
|
||||
const EditorWindow* activeWindow = m_hostRuntime.FindWindow(activeWindowId);
|
||||
return activeWindow != nullptr && activeWindow->GetHwnd() != nullptr;
|
||||
return activeWindow != nullptr &&
|
||||
activeWindow->GetHwnd() != nullptr &&
|
||||
!activeWindow->IsClosing();
|
||||
})()
|
||||
? std::string(activeWindowId)
|
||||
: windowSet.primaryWindowId;
|
||||
|
||||
Reference in New Issue
Block a user