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

Expose WindowDestroyed events #9016

Merged
merged 2 commits into from
Jul 4, 2023

Conversation

arendjr
Copy link
Contributor

@arendjr arendjr commented Jul 1, 2023

Objective

I'm creating an iOS game and had to find a way to persist game state when the application is terminated. This required listening to the applicationWillTerminate() method, but I cannot do so myself anymore since winit already set up a delegate to listen for it, and there can be only one delegate.

So I had to move up the stack and try to respond to one of the events from winit instead. It appears winit fires two events that could serve my purpose: WindowEvent::Destroyed and Event::LoopDestroyed. It seemed to me the former might be slightly more generally useful, and I also found a past discussion that suggested it would be appropriate for Bevy to have a WindowDestroyed event: #5589 (comment)

Solution

  • I've added the WindowDestroyed event, which fires when winit fires WindowEvent::Destroyed.

Changelog

Added

  • Introduced a new WindowDestroyed event type. It is used to indicate a window has been destroyed by the windowing system.

@github-actions
Copy link
Contributor

github-actions bot commented Jul 1, 2023

Welcome, new contributor!

Please make sure you've read our contributing guide and we look forward to reviewing your pull request shortly ✨

@mockersf
Copy link
Member

mockersf commented Jul 1, 2023

thanks for the contribution! Could you run cargo fmt on your PR?

@arendjr
Copy link
Contributor Author

arendjr commented Jul 1, 2023

Hm, I did, but it didn't report any changes. But I've added the semicolon the CI was complaining about.

@Aceeri
Copy link
Member

Aceeri commented Jul 2, 2023

This is technically accomplishable with RemovedComponents I believe, but being consistent with the other events is helpful

@mockersf mockersf added A-Windowing Platform-agnostic interface layer to run your app in S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it labels Jul 2, 2023
@james7132 james7132 added this pull request to the merge queue Jul 4, 2023
Merged via the queue into bevyengine:main with commit ee82eec Jul 4, 2023
@arendjr arendjr deleted the expose-window-destroyed-event branch July 5, 2023 07:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Windowing Platform-agnostic interface layer to run your app in S-Ready-For-Final-Review This PR has been approved by the community. It's ready for a maintainer to consider merging it
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants