| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
In some cases, Qt will itself trigger a paint event after closing the file save dialog. When that happens, we need to be sure that the internal canvas is re-drawn. However, if the user is using an automatically-chosen Qt backend but saving with a different backend (such as pgf), we do not want to trigger a full draw in Qt, so just set the flag for next time. Fixes matplotlib#26272
|
Do we need a similar change for wx? |
Sorry, something went wrong.
|
I forgot to mention that I tried wx (on Windows at least), and it didn't seem to need a similar change. I can't say whether some other platform will trigger this in the same way that Qt doesn't seem to be consistent. |
Sorry, something went wrong.
| # save dialog. When that happens, we need to be sure that the internal canvas is | ||
| # re-drawn. However, if the user is using an automatically-chosen Qt backend but | ||
| # saving with a different backend (such as pgf), we do not want to trigger a | ||
| # full draw in Qt, so just set the flag for next time. |
There was a problem hiding this comment.
This is going to force a full re-render the next time the window paints itself no matter which canvas class was actually selected.
The advantage of doing this rather than `self.draw_idle8 that this won't trigger the repaint and redraw on its own?
Sorry, something went wrong.
There was a problem hiding this comment.
This is going to force a full re-render the next time the window paints itself no matter which canvas class was actually selected.
Yes, this would be the same as before #25713.
The advantage of doing this rather than `self.draw_idle8 that this won't trigger the repaint and redraw on its own?
Yes, draw_idle will add a timer and actually draw later; we don't want that in order to keep the fix for #5234.
Sorry, something went wrong.
There was a problem hiding this comment.
@QuLogic Thanks for investigating this. On the side of mplcairo.qt I had the same issue, but took a slightly different approach to fix it (matplotlib/mplcairo@cd6d2ca): I stash the old renderer before calling print_figure, and then restore it at the end, which always saves the need for a redraw. Perhaps the same can be done here? (Not that I actually checked.)
Sorry, something went wrong.
There was a problem hiding this comment.
This suggests a more general change in that print_figure should always make a new canvas object even if the currently in-use canvas can technically save the format requested. This would simplify some of the logic a bit (I think) and would probably save a bunch of dpi changing work...
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
PR summary
In some cases, Qt will itself trigger a paint event after closing the file save dialog. When that happens, we need to be sure that the internal canvas is re-drawn. However, if the user is using an automatically-chosen Qt backend but saving with a different backend (such as pgf), we do not want to trigger a full draw in Qt, so just set the flag for next time.
Fixes #26272
I don't really know how to test this one.
PR checklist