{{ message }}
Fix for issue 17769: wx interactive figure close cause crash - #19596
Merged
Merged
Conversation
1) On figure window (FigureFrameWx) close - remove figure manager from from Gcf class previously Gcf.destroy was called with FigureFrameWx not FigureManagerWx instance so figure was not removed. 2) Destroy now done from FigureManagerWx.destroy() method to prevent multiple calls to the close event handler. 3) Remove unneeded wx mainloop yield calls that cause crash on windows form both FigureManagerWx.destroy and FigureFrameWx.Destroy
There was a problem hiding this comment.
Thank you for opening your first PR into Matplotlib!
If you have not heard from us in a while, please feel free to ping @matplotlib/developers or anyone who has commented on the PR. Most of our reviewers are volunteers and sometimes things fall through the cracks.
You can also join us on gitter for real-time discussion.
For details on testing, writing docs, and our review process, please see the developer guide
We strive to be a welcoming and open project. Please follow our Code of Conduct.
Prevent multiple attempts to close the frame by setting to FigureManagerWx.frame to None when closed by GUI. When closed by plt.close() call, the frame is closed in a threadsafe way using wx.CallAfter( frame.Close )
Contributor
Author
tacaswell
approved these changes
Mar 1, 2021
Member
|
Thanks @tohc1 ! |
QuLogic
reviewed
Mar 1, 2021
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
QuLogic
approved these changes
Mar 2, 2021
QuLogic
left a comment
Member
There was a problem hiding this comment.
Don't know why flake8 doesn't flag this.
Co-authored-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
meeseeksmachine
pushed a commit
to meeseeksmachine/matplotlib
that referenced
this pull request
Mar 3, 2021
…ure close cause crash
Member
QuLogic
added a commit
that referenced
this pull request
Mar 3, 2021
…596-on-v3.4.x Backport PR #19596 on branch v3.4.x (Fix for issue 17769: wx interactive figure close cause crash)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

PR Summary
Fix for issue #17769
On figure window (FigureFrameWx) close - remove figure manager from from Gcf class
previously Gcf.destroy was called with FigureFrameWx not FigureManagerWx instance so figure was not removed correctly.
Destroy now done from FigureManagerWx.destroy() method to prevent multiple calls to the close event handler.
Remove unneeded wx mainloop yield calls that cause crash on windows from both FigureManagerWx.destroy and FigureFrameWx.Destroy.
Tested on windows 10, and mint 20.1.
PR Checklist
pytestpasses).flake8on changed files to check).flake8-docstringsand runflake8 --docstring-convention=all).doc/users/next_whats_new/(follow instructions in README.rst there).doc/api/next_api_changes/(follow instructions in README.rst there).