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

Only use asynchronous redraw methods when handling GUI events in Qt5Agg (fix #4604) #4612

Merged
merged 2 commits into from Jul 22, 2015

Conversation

pwuertz
Copy link
Contributor

@pwuertz pwuertz commented Jul 10, 2015

When handling events like mouse movements during zoom/pan, the Qt5 backend forced a redraw of the Agg canvas for every event. Redraw operations should be done only when the GUI is ready to display another frame, else the rendering performance is going to be crushed on systems where Qt emits events more frequently.

@pwuertz
Copy link
Contributor Author

pwuertz commented Jul 10, 2015

For testing purposes I removed the update/redraw() switch for windows that was introduced because windows users reported a insufficient amount of actual redraws on Qt4Agg/Win. It could be possible that this was actually the same problem back then if Qt4/Win emitted events more frequently than Qt4/X11 or Qt4/OSX. Could a Windows user confirm that Qt5Agg is working fine with this PR?

@pwuertz pwuertz changed the title Only use asynchronous redraw methods when handling GUI events in Qt5Agg Only use asynchronous redraw methods when handling GUI events in Qt5Agg (fix #4604) Jul 10, 2015
@tacaswell
Copy link
Member

The _priv_update code is duplicated in the qt4agg backend as well.

@tacaswell tacaswell modified the milestone: next point release Jul 17, 2015
@tacaswell
Copy link
Member

I can confirm both the bug and that this fixes it.

Both the qt4 and qt5 backends work fine wrt pan/zoom updates for me with this.

I am going to merge this now and make a note with the RC that this will need testing on mac + windows.

tacaswell added a commit that referenced this pull request Jul 22, 2015
FIX: Only use asynchronous redraw methods when handling GUI events in Qt5Agg

Fix #4604
@tacaswell tacaswell merged commit bb9ec1b into matplotlib:master Jul 22, 2015
@pwuertz pwuertz deleted the fix_4604 branch February 24, 2016 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants