Skip to content

interactive plot window not showing under wayland in debug mode for matplotlib=3.9 #1633

Closed
@suxpert

Description

@suxpert

Environment data

  • debugpy version: 1.8.2
  • OS and version: OpenSUSE Tumbleweed (20240716), KDE Plasma 6 under wayland.
  • Python version (& distribution if applicable, e.g. Anaconda): python 3.11.9 from conda-forge (mamba)
  • Using VS Code or Visual Studio:
    VS Code with Python Debugger v2024.8.0

Actual behavior

Try debugging the following code:

import matplotlib.pyplot as plt

plt.plot([1,2,3,3])
plt.show()
pass

If the break point is at pass, where Debugger skipped entering the interactive mode, the figure is shown normally.
But if there are break points earlier, e.g., add a break point at plt.plot..., then debug and go though until we stop at pass,
the figure won't be shown, with a wayland icon/window showing in the taskbar, but an invisible figure window.

Turing on interactive mode manually makes the plot invisible too (set break point at pass and debug):

import matplotlib.pyplot as plt

plt.ion()
plt.plot([1,2,3,3])
plt.show()
pass

Expected behavior

We expect the interactive plot window be shown as a normal window and response to resize/maximize etc.

Steps to reproduce:

  1. Create an environment with matplotlib=3.9: mamba create -n 'test' matplotlib=3.9 qt-wayland
  2. Enabling wayland support via setting QT_QPA_PLATFORM=wayland;xcb in /etc/environment or launch.json
  3. launch VS code and try debugging the previous code snippets
  4. You may see the behavior described earlier, with visible figure window when interactive mode is off, or misbehavior when interactive mode is on.

Additional information:

  1. If we down-grade matplotlib to 3.8, this issue do not exist. (see Can't create plot from the debug console #1606)
  2. Might be the same issue as Failed test due to matplotlib deprecation of interactive_bk #1623, don't know if is related to Unable to interactively see matplotlib plots with QtAgg backend #858 et al.,
  3. Don't know if this is wayland specific, or also affect X11 (not tested). But note that under wayland, there exists a warning: qt.qpa.wayland: Wayland does not support QWindow::requestActivate() when plt.show().

Metadata

Metadata

Assignees

Labels

Fixed in next releaseThis issue has been fixed, but won't be available to customers until the next release.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions