Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Simplify connection of the default key_press and button_press handlers. #17110

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
Apr 13, 2020

Conversation

anntzer
Copy link
Contributor

@anntzer anntzer commented Apr 12, 2020

It likely doesn't make much sense to call key_press_handler or
button_press_handler with canvas != event.canvas or
toolbar != event.canvas.toolbar (the default Toolbar constructor sets
itself as this attribute on the canvas), so we can just make these
parameters optional and fill them in from event. This means that
connecting these handlers is now just
canvas.mpl_connect("key_press_event", key_press_handler), rather than
having to create an intermediate function to adjust the signature (see
change in embedding_in_tk_sgskip.py).

canvas and toolbar could probably even be deleted, but I'm not sure
the API change is actually worth it -- plus there may be someone
somewhere who actually has a use case for toolbar not matching
event.canvas.toolbar...

PR Summary

PR Checklist

  • Has Pytest style unit tests
  • Code is Flake 8 compliant
  • New features are documented, with examples if plot related
  • Documentation is sphinx and numpydoc compliant
  • Added an entry to doc/users/next_whats_new/ if major new feature (follow instructions in README.rst there)
  • Documented in doc/api/api_changes.rst if API changed in a backward-incompatible way

@tacaswell tacaswell added this to the v3.3.0 milestone Apr 12, 2020
@timhoffm
Copy link
Member

Should this get an "API changes" entry even though it's not breaking? IMHO this is a relevant simplification also for users.

It likely doesn't make much sense to call `key_press_handler` or
`button_press_handler` with `canvas != event.canvas` or
`toolbar != event.canvas.toolbar` (the default Toolbar constructor sets
itself as this attribute on the canvas), so we can just make these
parameters optional and fill them in from `event`.  This means that
connecting these handlers is now just
`canvas.mpl_connect("key_press_event", key_press_handler)`, rather than
having to create an intermediate function to adjust the signature (see
change in embedding_in_tk_sgskip.py).

`canvas` and `toolbar` could probably even be deleted, but I'm not sure
the API change is actually worth it -- plus there may be someone
somewhere who actually has a use case for `toolbar` not matching
`event.canvas.toolbar`...
@anntzer
Copy link
Contributor Author

anntzer commented Apr 12, 2020

sure, added whatsnew

@timhoffm timhoffm merged commit 3b9ce34 into matplotlib:master Apr 13, 2020
@anntzer anntzer deleted the default_handlers branch April 13, 2020 07:23
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.

3 participants
Morty Proxy This is a proxified and sanitized view of the page, visit original site.