spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.33k stars 1.61k forks source link

Non-visible Help panel steals focus from IPython console #17214

Open pkars opened 2 years ago

pkars commented 2 years ago

Issue Report Checklist

Problem Description

An appearing Help panel will steal focus from the Console and won't give it back. This interferes with typing as the keystrokes are ignored. To continue typing into the console, you'll have to manually refocus into it.

If the Help panel is already visible, this issue doesn't happen and the Console retains the focus normally.

As a side note, similar behaviour can be observed when using Ctrl+I (Inspect object) keyboard shortcut. This affects both Console and Editor.

What steps reproduce the problem?

  1. Have Help panel connected to Console (Preferences > Help > Automatic Connections > IPython Console toggled on)
  2. Turn off or hide Help panel (e.g. using default layout, switch to Variable Explorer tab on upper right view)
  3. Start typing a function call to the Console, for example dir()
  4. Once you type the left bracket, the Help panel shows up and Console loses focus.

What is the expected output? What do you see instead?

I should be able to continue writing without having to refocus back to the Console, regardless if the Help panel is initially hidden or not.

Paste Traceback/Error Below (if applicable)

N/A

Versions

Dependencies

# Mandatory:
atomicwrites >=1.2.0                 :  1.4.0 (OK)
chardet >=2.0.0                      :  4.0.0 (OK)
cloudpickle >=0.5.0                  :  2.0.0 (OK)
cookiecutter >=1.6.0                 :  1.7.3 (OK)
diff_match_patch >=20181111          :  20200713 (OK)
intervaltree >=3.0.2                 :  3.0.2 (OK)
IPython >=7.6.0                      :  8.0.0 (OK)
jedi >=0.17.2;<0.19.0                :  0.18.1 (OK)
jellyfish >=0.7                      :  0.9.0 (OK)
jsonschema >=3.2.0                   :  4.4.0 (OK)
keyring >=17.0.0                     :  23.4.0 (OK)
nbconvert >=4.0                      :  6.4.0 (OK)
numpydoc >=0.6.0                     :  1.1.0 (OK)
parso >=0.7.0;<0.9.0                 :  0.8.3 (OK)
pexpect >=4.4.0                      :  4.8.0 (OK)
pickleshare >=0.4                    :  0.7.5 (OK)
psutil >=5.3                         :  5.9.0 (OK)
pygments >=2.0                       :  2.11.2 (OK)
pylint >=2.5.0                       :  2.12.2 (OK)
pyls_spyder >=0.4.0                  :  0.4.0 (OK)
pylsp >=1.3.2;<1.4.0                 :  1.3.3 (OK)
pylsp_black >=1.0.0                  :  1.0.1 (OK)
qdarkstyle =3.0.2                    :  3.0.2 (OK)
qstylizer >=0.1.10                   :  0.2.1 (OK)
qtawesome >=1.0.2                    :  1.1.1 (OK)
qtconsole >=5.2.1;<5.3.0             :  5.2.2 (OK)
qtpy >=1.5.0                         :  2.0.0 (OK)
rtree >=0.9.7                        :  0.9.7 (OK)
setuptools >=49.6.0                  :  59.8.0 (OK)
sphinx >=0.6.6                       :  4.4.0 (OK)
spyder_kernels >=2.2.0;<2.3.0        :  2.2.1 (OK)
textdistance >=4.2.0                 :  4.2.2 (OK)
three_merge >=0.1.1                  :  0.1.1 (OK)
watchdog >=0.10.3                    :  2.1.6 (OK)
xdg >=0.26                           :  0.27 (OK)
zmq >=17                             :  22.3.0 (OK)

# Optional:
cython >=0.21                        :  None (NOK)
matplotlib >=2.0.0                   :  3.5.1 (OK)
numpy >=1.7                          :  1.22.0 (OK)
pandas >=1.1.1                       :  1.3.5 (OK)
scipy >=0.17.0                       :  1.7.3 (OK)
sympy >=0.7.3                        :  None (NOK)

# Spyder plugins:
spyder_terminal.terminalplugin 1.2.0 :  1.2.0 (OK)
dalthviz commented 2 years ago

Hi @pkars thank you for the feedback! I was able to reproduce this. We will check it in a future release :+1: