Skip to content

FIX: Update macosx animation handling #22175

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

Merged
merged 1 commit into from
Mar 5, 2022

Conversation

greglucas
Copy link
Contributor

PR Summary

  • Emit a resize_event signal when the pixel ratio is updated. This
    enables an animation to move between hidpi and standard dpi screens
    without ruining the blitting.

  • Init the draw in the animation. This is only necessary for macosx
    because an initial resize isn't emitted upon figure manager creation,
    versus the other backends where it is. This would cause the first frame
    to be stale on the macosx animations when used with blitting.

Closes #18451

This is the example I was testing with that kept the first frame previously, but now updates as expected like the other backends.
https://matplotlib.org/stable/gallery/animation/simple_anim.html

I'm not sure if there is a simple test for these updates as they are interactive-based primarily. Happy to add one if someone has a good idea for how to verify this without seeing it.

PR Checklist

Tests and Styling

  • Has pytest style unit tests (and pytest passes).
  • Is Flake 8 compliant (install flake8-docstrings and run flake8 --docstring-convention=all).

Documentation

  • New features are documented, with examples if plot related.
  • New features have an entry in doc/users/next_whats_new/ (follow instructions in README.rst there).
  • API changes documented in doc/api/next_api_changes/ (follow instructions in README.rst there).
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).

- Emit a resize_event signal when the pixel ratio is updated. This
  enables an animation to move between hidpi and standard dpi screens
  without ruining the blitting.

- Init the draw in the animation. This is only necessary for macosx
  because an initial resize isn't emitted upon figure manager creation,
  versus the other backends where it is. This would cause the first frame
  to be stale on the macosx animations when used with blitting.
Copy link
Member

@QuLogic QuLogic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can't test, but it seems reasonable.

@greglucas
Copy link
Contributor Author

Pinging for another mac review if someone wants to test it out and push it through.

@tacaswell tacaswell requested a review from dstansby March 4, 2022 20:46
Copy link
Member

@tacaswell tacaswell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, but can not test (easily).

Copy link
Member

@dstansby dstansby left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 works for me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

MacOSX backend fails with animation in certain scripts
5 participants