Bug report
Bug summary
As of now, the wx.ClientDC is not yet working with wxPython 4.0.1 and the Wayland display server.
The resulting problems:
- a call to
canvas.draw() does not update the screen content immediately, but only on the next Paint event
- the rubberband for zooming in is not displayed
Workarounds:
- call
window.Refresh() after canvas.draw()
- or use the X11 window manager (on Ubuntu: select 'Ubuntu on Xorg' on the login screen)
- or use wxPython Classic (i.e. 3.0.2)
A bug report for wxPython is open: wxWidgets/Phoenix#743
The original bug report: https://groups.google.com/forum/#!topic/wxpython-dev/8E4jtTjEmjI
Medium term, the wx backends should be rewritten to use Refresh / RefreshRect instead of a ClientDC and also double buffering. This would also allow to unify code between OS X and the other platforms, as for OS X the rubberband is implemented in a different way. But for 2.2 that's probably too challenging...
Matplotlib version
- Operating system: e.g. Ubuntu 17.10
- Matplotlib version: e.g. 2.1.2
- Matplotlib backend (
print(matplotlib.get_backend())): Wx / WxAgg
- Python version: any
- Jupyter version (if applicable): n.a.
- Other libraries: wxPython 4.0.1
Bug report
Bug summary
As of now, the
wx.ClientDCis not yet working with wxPython 4.0.1 and the Wayland display server.The resulting problems:
canvas.draw()does not update the screen content immediately, but only on the next Paint eventWorkarounds:
window.Refresh()aftercanvas.draw()A bug report for wxPython is open: wxWidgets/Phoenix#743
The original bug report: https://groups.google.com/forum/#!topic/wxpython-dev/8E4jtTjEmjI
Medium term, the wx backends should be rewritten to use
Refresh/RefreshRectinstead of aClientDCand also double buffering. This would also allow to unify code between OS X and the other platforms, as for OS X the rubberband is implemented in a different way. But for 2.2 that's probably too challenging...Matplotlib version
print(matplotlib.get_backend())): Wx / WxAgg