Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: Do not destroy the singleton Window for single-window targets #18369

Merged
merged 2 commits into from
Oct 4, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ public virtual void Initialize()

public virtual void Activate()
{
if (_isClosed)
if (NativeWindowFactory.SupportsMultipleWindows && _isClosed)
MartinZikmund marked this conversation as resolved.
Show resolved Hide resolved
{
throw new InvalidOperationException("Cannot reactivate a closed window.");
}
Expand Down Expand Up @@ -318,10 +318,18 @@ public bool Close()

// Window.PrepareToClose();

// set these to null before marking window as closed as they fail if called after m_bIsClosed is set
// because they check if window is closed already
Window.SetTitleBar(null);
Window.Content = null;
if (NativeWindowFactory.SupportsMultipleWindows)
{
// set these to null before marking window as closed as they fail if called after m_bIsClosed is set
// because they check if window is closed already
Window.SetTitleBar(null);
Window.Content = null;
}
else
{
// Just reset the window to not shown state so it can be reactivated
_wasShown = false;
}

// _windowChrome.SetDesktopWindow(null);

Expand All @@ -336,8 +344,11 @@ public bool Close()
RaiseWindowVisibilityChangedEvent(false);
}

// Close native window, cleanup, and unregister from hwnd mapping from DXamlCore
Shutdown();
if (NativeWindowFactory.SupportsMultipleWindows)
{
// Close native window, cleanup, and unregister from hwnd mapping from DXamlCore
Shutdown();
}

return true;
}
Expand Down
Loading