Fix ClassicDesktop Lifetime so that ShutdownRequested event is raised… #7400
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
… even with programatic calls to Shutdown.
What does the pull request do?
Many people are confused about the seperate concepts off "Application" shutdown and "Window" closing.
In OSX these are clearly seperate concepts, in Win32.. they also are but 99% of the time.. they are conflated to mean the same thing.
This makes sure that all programmatic and OS triggered "Application" shutdown requests raise the
ShutdownRequested
event and is cancellable.It adds a method
TryShutdown
leaving the existingShutdown
method to be as it is now... shutdown immediately no matter what.What is the current behavior?
OSX Application Menu Quit menu Item is not cancellable.
What is the updated/expected behavior with this PR?
It is cancellable.
End users can check both ApplicationLifetime.ShutdownRequested event and Window.Closing events to cancel shutdown.
How was the solution implemented (if it's not obvious)?
Checklist
Breaking changes
Obsoletions / Deprecations
Fixed issues
Fixes #7389
Fixes #7393