Title: Updated WxAgg NavigationToolbar2 breaks custom toolbars · Issue #18212 · matplotlib/matplotlib · GitHub
Open Graph Title: Updated WxAgg NavigationToolbar2 breaks custom toolbars · Issue #18212 · matplotlib/matplotlib
X Title: Updated WxAgg NavigationToolbar2 breaks custom toolbars · Issue #18212 · matplotlib/matplotlib
Description: Bug report Bug summary In matplotlib 3.3, the WxAgg backend NavigationToolbar2 has added a readout of the cursor position on the far right of the toolbar. This breaks the layout of custom toolbars where users have added their own buttons...
Open Graph Description: Bug report Bug summary In matplotlib 3.3, the WxAgg backend NavigationToolbar2 has added a readout of the cursor position on the far right of the toolbar. This breaks the layout of custom toolbars ...
X Description: Bug report Bug summary In matplotlib 3.3, the WxAgg backend NavigationToolbar2 has added a readout of the cursor position on the far right of the toolbar. This breaks the layout of custom toolbars ...
Opengraph URL: https://github.com/matplotlib/matplotlib/issues/18212
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Updated WxAgg NavigationToolbar2 breaks custom toolbars","articleBody":"### Bug report\r\n\r\n**Bug summary**\r\n\r\nIn matplotlib 3.3, the WxAgg backend NavigationToolbar2 has added a readout of the cursor position on the far right of the toolbar. This breaks the layout of custom toolbars where users have added their own buttons or other widgets. Because the cursor position is added with a stretchspacer, any widget added after it as also added to the far right of the toolbar. In addition (possibly due to adding the custom widgets after the toolbar is initially realized?), the cursor readout can appear under the custom toolbar buttons.\r\n\r\nHere's a custom toolbar from a program I maintain using matplotlib 3.3 and 3.2.2.\r\n\r\nWith 3.2.2:\r\n\u003cimg width=\"388\" alt=\"custom_toolbar_mpl3p2p2\" src=\"https://user-images.githubusercontent.com/23534688/89801803-41dc7b80-daf6-11ea-832b-e5eb53c09eec.png\"\u003e\r\n\r\nWith 3.3:\r\n\u003cimg width=\"537\" alt=\"custom_toolbar_mpl3p3\" src=\"https://user-images.githubusercontent.com/23534688/89801810-443ed580-daf6-11ea-9179-194dfe0e724e.png\"\u003e\r\n\r\n**Code for reproduction**\r\n\r\n```python\r\nimport wx\r\nimport matplotlib as mpl\r\nfrom matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg\r\nfrom matplotlib.backends.backend_wxagg import FigureCanvasWxAgg\r\n\r\nclass CustomToolbar(NavigationToolbar2WxAgg):\r\n def __init__(self, canvas):\r\n\r\n NavigationToolbar2WxAgg.__init__(self, canvas)\r\n\r\n move_bitmap = wx.Bitmap('./images/move.png')\r\n self.AddCheckTool(wx.ID_ANY, '', move_bitmap, shortHelp='Second Move Button')\r\n\r\nclass PlotFrame(wx.Frame):\r\n def __init__(self, parent, title, *args, **kwargs):\r\n wx.Frame.__init__(self, parent, title=title, *args, **kwargs)\r\n\r\n self.fig = mpl.figure.Figure((5,4))\r\n self.subplot1 = self.fig.add_subplot(111)\r\n self.canvas = FigureCanvasWxAgg(self, wx.ID_ANY, self.fig)\r\n\r\n self.toolbar = CustomToolbar(self.canvas)\r\n self.toolbar.Realize()\r\n\r\n sizer = wx.BoxSizer(wx.VERTICAL)\r\n sizer.Add(self.canvas, 1, wx.LEFT | wx.TOP | wx.GROW)\r\n sizer.Add(self.toolbar, 0, wx.GROW)\r\n\r\n self.SetSizer(sizer)\r\n self.Layout()\r\n self.Fit()\r\n self.CenterOnScreen()\r\n self.Show(True)\r\n\r\nif __name__ == '__main__':\r\n app = wx.App(False)\r\n frame = PlotFrame(None, 'My Plot Frame')\r\n app.MainLoop()\r\n```\r\n\r\n**Actual outcome**\r\nActual outcome with 3.3:\r\n\u003cimg width=\"499\" alt=\"actual_outcome\" src=\"https://user-images.githubusercontent.com/23534688/89802138-b0b9d480-daf6-11ea-8e93-0e9338c6356f.png\"\u003e\r\n\r\n**Expected outcome**\r\nExpected outcome (as with previous versions, using 3.2.2):\r\n\u003cimg width=\"501\" alt=\"expected_outcome\" src=\"https://user-images.githubusercontent.com/23534688/89802179-c4fdd180-daf6-11ea-8c43-029673c2da8c.png\"\u003e\r\n\r\n**Matplotlib version**\r\n * Operating system: MacOS 10.14.6\r\n * Matplotlib version: 3.3.0\r\n * Matplotlib backend (`print(matplotlib.get_backend())`): WxAgg\r\n * Python version: 3.7.6\r\n * Other libraries: wxpython 4.0.4\r\n\r\nEverything installed through conda. Matplotlib 3.2.2 installed from the main channel, 3.3.0 installed from conda-forge channel.","author":{"url":"https://github.com/jbhopkins","@type":"Person","name":"jbhopkins"},"datePublished":"2020-08-10T15:58:38.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/18212/matplotlib/issues/18212"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:9d0559ea-5467-20b7-6c47-12fa20d7621a |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | DD06:147EC0:C95DB0:10C7636:6A52877D |
| html-safe-nonce | ee53f3953aa8871a453095664875d51fbba0a52c34fb17a8cd3281138dc5e2fb |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJERDA2OjE0N0VDMDpDOTVEQjA6MTBDNzYzNjo2QTUyODc3RCIsInZpc2l0b3JfaWQiOiI2NTk4MzQ2MjkxNzIzOTc5NDkiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 0264626b6cf377e64b809474612068afb90020598229b6b67bbef2503cd99503 |
| hovercard-subject-tag | issue:676244261 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/matplotlib/matplotlib/18212/issue_layout |
| twitter:image | https://opengraph.githubassets.com/2ae0ae61e65d8cee42b01527054e460df47eb2213b8f0417e5cfb62319070ba3/matplotlib/matplotlib/issues/18212 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/2ae0ae61e65d8cee42b01527054e460df47eb2213b8f0417e5cfb62319070ba3/matplotlib/matplotlib/issues/18212 |
| og:image:alt | Bug report Bug summary In matplotlib 3.3, the WxAgg backend NavigationToolbar2 has added a readout of the cursor position on the far right of the toolbar. This breaks the layout of custom toolbars ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | jbhopkins |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| go-import | github.com/matplotlib/matplotlib git https://github.com/matplotlib/matplotlib.git |
| octolytics-dimension-user_id | 215947 |
| octolytics-dimension-user_login | matplotlib |
| octolytics-dimension-repository_id | 1385122 |
| octolytics-dimension-repository_nwo | matplotlib/matplotlib |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1385122 |
| octolytics-dimension-repository_network_root_nwo | matplotlib/matplotlib |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 07a982c1d40157c619b364352b704c3ce66bb332 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width