Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attention jumps to last known search result location when a cell operation is executed #15986

Open
svaningelgem opened this issue Mar 13, 2024 · 12 comments

Comments

@svaningelgem
Copy link

Description

This problem was already once reported in #9437. However, it seems to still be present in the current versions?

Reproduce

  1. Open the attached notebook. (it's just a lot of random text spanning more than the view area.
  2. Go to latest cell and make it active
  3. Search for "ipsum" (notice it will focus the first occurence in the text - which was beyond the view area of the last cell).
  4. Don't close the search dialog and go back to the last cell
  5. make it active again
  6. Add a new cell underneath (I used the small button at the right side, but "B" works fine too)
  7. The first search result will jump into focus again.

This is highly annoying.
So I tried to close that dialog (cross). (the search results are NOT highlighted anymore - as expected)

  1. Activate the newly created cell again.
  2. Create a new cell underneath.
  3. The focus jumps back again to the first ipsum search result, and it scrolls into focus. The search results are also highlighted. But the search dialog isn't open anymore.

Expected behavior

What I'd expect to see is when I search:

  • highlight + focus on the first one: this is correct
  • when I keep working, the focus should not jump away. Only when I'm using the search dialog to modify the query.
  • and for sure not if the search dialog is closed, it shouldn't interfer anymore.

Context

  • Operating System and version: Windows 10
  • Browser and version: Firefox 123.0.1, also confirmed under Chrome 122.0.6261.112
  • JupyterLab version: 4.0.9
Troubleshoot Output
sys.executable:
        e:\miniforge3\envs\howest\python.exe

sys.version:
3.11.7 | packaged by conda-forge | (main, Dec 23 2023, 14:27:59) [MSC v.1937 64 bit (AMD64)]

platform.platform():
Windows-10-10.0.19045-SP0

where jupyter:
e:\miniforge3\envs\howest\Scripts\jupyter.exe

pip list:
Package Version
---------------------------- ------------
absl-py 2.1.0
alembic 1.13.0
annotated-types 0.6.0
anyio 4.1.0
argon2-cffi 23.1.0
argon2-cffi-bindings 21.2.0
arrow 1.3.0
asttokens 2.4.1
astunparse 1.6.3
async-lru 2.0.4
attrs 23.1.0
Babel 2.13.1
beautifulsoup4 4.12.2
bleach 6.1.0
Brotli 1.1.0
cachetools 5.3.2
certifi 2023.7.22
cffi 1.16.0
charset-normalizer 3.2.0
click 8.1.7
colorama 0.4.6
colorlog 6.8.0
comm 0.2.0
contourpy 1.2.0
cycler 0.12.1
daal 2024.0.1
daal4py 2024.0.1
dacite 1.8.1
deap 1.4.1
debugpy 1.8.0
decorator 5.1.1
defusedxml 0.7.1
executing 2.0.1
fastjsonschema 2.19.0
flatbuffers 23.5.26
fonttools 4.46.0
fqdn 1.5.1
gast 0.5.4
google-auth 2.28.1
google-auth-oauthlib 1.2.0
google-pasta 0.2.0
greenlet 3.0.1
grpcio 1.62.0
h5py 3.10.0
htmlmin 0.1.12
idna 3.4
ImageHash 4.3.1
imageio 2.33.1
imbalanced-learn 0.11.0
imblearn 0.0
ipykernel 6.27.1
ipython 8.18.1
ipywidgets 8.1.1
isoduration 20.11.0
jedi 0.19.1
Jinja2 3.1.2
joblib 1.3.2
json5 0.9.14
jsonpointer 2.4
jsonschema 4.20.0
jsonschema-specifications 2023.11.2
jupyter 1.0.0
jupyter_client 8.6.0
jupyter-console 6.6.3
jupyter_core 5.5.0
jupyter-events 0.9.0
jupyter-lsp 2.2.1
jupyter_server 2.12.1
jupyter_server_terminals 0.5.0
jupyterlab 4.0.9
jupyterlab-execute-time 3.1.0
jupyterlab_pygments 0.3.0
jupyterlab_server 2.25.2
jupyterlab-widgets 3.0.9
keras 2.15.0
kiwisolver 1.4.5
lazy_loader 0.3
libclang 16.0.6
llvmlite 0.41.1
m3u8downloader 0.10.1
Mako 1.3.0
Markdown 3.5.2
MarkupSafe 2.1.3
matplotlib 3.8.2
matplotlib-inline 0.1.6
mistune 3.0.2
ml-dtypes 0.2.0
multimethod 1.10
nbclient 0.9.0
nbconvert 7.12.0
nbformat 5.9.2
nest-asyncio 1.5.8
networkx 3.2.1
nltk 3.8.1
notebook 7.0.6
notebook_shim 0.2.3
numba 0.58.1
numpy 1.25.2
oauthlib 3.2.2
opt-einsum 3.3.0
optuna 3.5.0
overrides 7.4.0
packaging 23.2
pandas 2.1.4
pandocfilters 1.5.0
parso 0.8.3
patsy 0.5.4
phik 0.12.3
Pillow 10.1.0
pip 23.3.2
platformdirs 4.1.0
playwright 1.40.0
prometheus-client 0.19.0
prompt-toolkit 3.0.41
protobuf 4.25.3
psutil 5.9.6
pure-eval 0.2.2
pyasn1 0.5.1
pyasn1-modules 0.3.0
pycparser 2.21
pydantic 2.5.2
pydantic_core 2.14.5
pyee 11.0.1
Pygments 2.17.2
pyparsing 3.1.1
PySocks 1.7.1
python-dateutil 2.8.2
python-json-logger 2.0.7
pytz 2023.3.post1
PyWavelets 1.5.0
pywin32 306
pywinpty 2.0.12
PyYAML 6.0.1
pyzmq 25.1.2
qtconsole 5.5.1
QtPy 2.4.1
referencing 0.32.0
regex 2023.10.3
requests 2.31.0
requests-oauthlib 1.3.1
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rpds-py 0.13.2
rsa 4.9
ruff 0.1.11
scikeras 0.12.0
scikit-image 0.22.0
scikit-learn 1.3.2
scikit-learn-intelex 2024.0.1
scipy 1.11.4
seaborn 0.13.2
Send2Trash 1.8.2
setuptools 69.0.3
six 1.16.0
sniffio 1.3.0
soupsieve 2.5
SQLAlchemy 2.0.23
stack-data 0.6.3
statsmodels 0.14.0
stopit 1.1.2
tangled-up-in-unicode 0.2.0
tbb 2021.11.0
tensorboard 2.15.2
tensorboard-data-server 0.7.2
tensorflow 2.15.0
tensorflow-estimator 2.15.0
tensorflow-intel 2.15.0
tensorflow-io-gcs-filesystem 0.31.0
termcolor 2.4.0
terminado 0.18.0
threadpoolctl 3.2.0
tifffile 2023.12.9
tinycss2 1.2.1
tornado 6.4
TPOT 0.12.1
tqdm 4.66.1
traitlets 5.14.0
tslearn 0.6.3
typeguard 4.1.5
types-python-dateutil 2.8.19.14
typing_extensions 4.9.0
tzdata 2023.3
update-checker 0.18.0
uri-template 1.3.0
urllib3 2.1.0
visions 0.7.5
wcwidth 0.2.12
webcolors 1.13
webencodings 0.5.1
websocket-client 1.7.0
wells 1.5.0
Werkzeug 3.0.1
wheel 0.42.0
widgetsnbextension 4.0.9
win-inet-pton 1.1.0
wordcloud 1.9.3
wrapt 1.14.1
xgboost 2.0.2
ydata-profiling 4.6.3

conda list:
# packages in environment at e:\miniforge3\envs\howest:
#
# Name Version Build Channel
absl-py 2.1.0 pypi_0 pypi
alembic 1.13.0 pypi_0 pypi
annotated-types 0.6.0 pypi_0 pypi
anyio 4.1.0 pypi_0 pypi
argon2-cffi 23.1.0 pypi_0 pypi
argon2-cffi-bindings 21.2.0 pypi_0 pypi
arrow 1.3.0 pypi_0 pypi
asttokens 2.4.1 pypi_0 pypi
astunparse 1.6.3 pypi_0 pypi
async-lru 2.0.4 pypi_0 pypi
attrs 23.1.0 pypi_0 pypi
babel 2.13.1 pypi_0 pypi
beautifulsoup4 4.12.2 pyha770c72_0 conda-forge
bleach 6.1.0 pypi_0 pypi
blis 0.9.0 hcfcfb64_1 conda-forge
brotli-python 1.1.0 py311h12c1d0e_1 conda-forge
bs4 4.12.2 hd8ed1ab_0 conda-forge
bzip2 1.0.8 hcfcfb64_5 conda-forge
ca-certificates 2023.11.17 h56e8100_0 conda-forge
cachetools 5.3.2 pypi_0 pypi
certifi 2023.11.17 pyhd8ed1ab_0 conda-forge
cffi 1.16.0 pypi_0 pypi
charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge
click 8.1.7 pypi_0 pypi
colorama 0.4.6 pypi_0 pypi
colorlog 6.8.0 pypi_0 pypi
comm 0.2.0 pypi_0 pypi
contourpy 1.2.0 pypi_0 pypi
cycler 0.12.1 pypi_0 pypi
daal 2024.0.1 pypi_0 pypi
daal4py 2024.0.1 pypi_0 pypi
dacite 1.8.1 pypi_0 pypi
deap 1.4.1 pypi_0 pypi
debugpy 1.8.0 pypi_0 pypi
decorator 5.1.1 pypi_0 pypi
defusedxml 0.7.1 pypi_0 pypi
executing 2.0.1 pypi_0 pypi
fastjsonschema 2.19.0 pypi_0 pypi
flatbuffers 23.5.26 pypi_0 pypi
fonttools 4.46.0 pypi_0 pypi
fqdn 1.5.1 pypi_0 pypi
gast 0.5.4 pypi_0 pypi
google-auth 2.28.1 pypi_0 pypi
google-auth-oauthlib 1.2.0 pypi_0 pypi
google-pasta 0.2.0 pypi_0 pypi
greenlet 3.0.1 pypi_0 pypi
grpcio 1.62.0 pypi_0 pypi
h5py 3.10.0 pypi_0 pypi
htmlmin 0.1.12 pypi_0 pypi
idna 3.6 pyhd8ed1ab_0 conda-forge
imagehash 4.3.1 pypi_0 pypi
imageio 2.33.1 pypi_0 pypi
imbalanced-learn 0.11.0 pypi_0 pypi
imblearn 0.0 pypi_0 pypi
intel-openmp 2024.0.0 h57928b3_49840 conda-forge
ipykernel 6.27.1 pypi_0 pypi
ipython 8.18.1 pypi_0 pypi
ipywidgets 8.1.1 pypi_0 pypi
isoduration 20.11.0 pypi_0 pypi
jedi 0.19.1 pypi_0 pypi
jinja2 3.1.2 pypi_0 pypi
joblib 1.3.2 pypi_0 pypi
json5 0.9.14 pypi_0 pypi
jsonpointer 2.4 pypi_0 pypi
jsonschema 4.20.0 pypi_0 pypi
jsonschema-specifications 2023.11.2 pypi_0 pypi
jupyter 1.0.0 pypi_0 pypi
jupyter-client 8.6.0 pypi_0 pypi
jupyter-console 6.6.3 pypi_0 pypi
jupyter-core 5.5.0 pypi_0 pypi
jupyter-events 0.9.0 pypi_0 pypi
jupyter-lsp 2.2.1 pypi_0 pypi
jupyter-server 2.12.1 pypi_0 pypi
jupyter-server-terminals 0.5.0 pypi_0 pypi
jupyterlab 4.0.9 pypi_0 pypi
jupyterlab-execute-time 3.1.0 pypi_0 pypi
jupyterlab-pygments 0.3.0 pypi_0 pypi
jupyterlab-server 2.25.2 pypi_0 pypi
jupyterlab-widgets 3.0.9 pypi_0 pypi
keras 2.15.0 pypi_0 pypi
kiwisolver 1.4.5 pypi_0 pypi
lazy-loader 0.3 pypi_0 pypi
libblas 3.9.0 20_win64_blis conda-forge
libcblas 3.9.0 20_win64_blis conda-forge
libclang 16.0.6 pypi_0 pypi
libexpat 2.5.0 h63175ca_1 conda-forge
libffi 3.4.2 h8ffe710_5 conda-forge
libhwloc 2.9.3 default_haede6df_1009 conda-forge
libiconv 1.17 hcfcfb64_2 conda-forge
liblapack 3.9.0 5_hd5c7e75_netlib conda-forge
libsqlite 3.44.2 hcfcfb64_0 conda-forge
libxml2 2.11.6 hc3477c8_0 conda-forge
libzlib 1.2.13 hcfcfb64_5 conda-forge
llvmlite 0.41.1 pypi_0 pypi
m2w64-gcc-libgfortran 5.3.0 6 conda-forge
m2w64-gcc-libs 5.3.0 7 conda-forge
m2w64-gcc-libs-core 5.3.0 7 conda-forge
m2w64-gmp 6.1.0 2 conda-forge
m2w64-libwinpthread-git 5.0.0.4634.697f757 2 conda-forge
m3u8downloader 0.10.1 pypi_0 pypi
mako 1.3.0 pypi_0 pypi
markdown 3.5.2 pypi_0 pypi
markupsafe 2.1.3 pypi_0 pypi
matplotlib 3.8.2 pypi_0 pypi
matplotlib-inline 0.1.6 pypi_0 pypi
mistune 3.0.2 pypi_0 pypi
mkl 2024.0.0 h66d3029_49657 conda-forge
ml-dtypes 0.2.0 pypi_0 pypi
msys2-conda-epoch 20160418 1 conda-forge
multimethod 1.10 pypi_0 pypi
nbclient 0.9.0 pypi_0 pypi
nbconvert 7.12.0 pypi_0 pypi
nbformat 5.9.2 pypi_0 pypi
nest-asyncio 1.5.8 pypi_0 pypi
networkx 3.2.1 pypi_0 pypi
nltk 3.8.1 pypi_0 pypi
notebook 7.0.6 pypi_0 pypi
notebook-shim 0.2.3 pypi_0 pypi
numba 0.58.1 pypi_0 pypi
numpy 1.25.2 pypi_0 pypi
oauthlib 3.2.2 pypi_0 pypi
openssl 3.2.0 hcfcfb64_1 conda-forge
opt-einsum 3.3.0 pypi_0 pypi
optuna 3.5.0 pypi_0 pypi
overrides 7.4.0 pypi_0 pypi
packaging 23.2 pypi_0 pypi
pandas 2.1.4 pypi_0 pypi
pandocfilters 1.5.0 pypi_0 pypi
parso 0.8.3 pypi_0 pypi
patsy 0.5.4 pypi_0 pypi
phik 0.12.3 pypi_0 pypi
pillow 10.1.0 pypi_0 pypi
pip 23.3.2 pyhd8ed1ab_0 conda-forge
platformdirs 4.1.0 pypi_0 pypi
playwright 1.40.0 pypi_0 pypi
prometheus-client 0.19.0 pypi_0 pypi
prompt-toolkit 3.0.41 pypi_0 pypi
protobuf 4.25.3 pypi_0 pypi
psutil 5.9.6 pypi_0 pypi
pthreads-win32 2.9.1 hfa6e2cd_3 conda-forge
pure-eval 0.2.2 pypi_0 pypi
pyasn1 0.5.1 pypi_0 pypi
pyasn1-modules 0.3.0 pypi_0 pypi
pycparser 2.21 pypi_0 pypi
pydantic 2.5.2 pypi_0 pypi
pydantic-core 2.14.5 pypi_0 pypi
pyee 11.0.1 pypi_0 pypi
pygments 2.17.2 pypi_0 pypi
pyparsing 3.1.1 pypi_0 pypi
pysocks 1.7.1 pyh0701188_6 conda-forge
python 3.11.7 h2628c8c_1_cpython conda-forge
python-dateutil 2.8.2 pypi_0 pypi
python-json-logger 2.0.7 pypi_0 pypi
python_abi 3.11 4_cp311 conda-forge
pytz 2023.3.post1 pypi_0 pypi
pywavelets 1.5.0 pypi_0 pypi
pywin32 306 pypi_0 pypi
pywinpty 2.0.12 pypi_0 pypi
pyyaml 6.0.1 py311ha68e1ae_1 conda-forge
pyzmq 25.1.2 pypi_0 pypi
qtconsole 5.5.1 pypi_0 pypi
qtpy 2.4.1 pypi_0 pypi
referencing 0.32.0 pypi_0 pypi
regex 2023.10.3 pypi_0 pypi
requests 2.31.0 pyhd8ed1ab_0 conda-forge
requests-oauthlib 1.3.1 pypi_0 pypi
rfc3339-validator 0.1.4 pypi_0 pypi
rfc3986-validator 0.1.1 pypi_0 pypi
rpds-py 0.13.2 pypi_0 pypi
rsa 4.9 pypi_0 pypi
ruff 0.1.7 pypi_0 pypi
scikeras 0.12.0 pypi_0 pypi
scikit-image 0.22.0 pypi_0 pypi
scikit-learn 1.3.2 pypi_0 pypi
scikit-learn-intelex 2024.0.1 pypi_0 pypi
scipy 1.11.4 pypi_0 pypi
seaborn 0.13.2 pypi_0 pypi
send2trash 1.8.2 pypi_0 pypi
setuptools 69.0.3 pyhd8ed1ab_0 conda-forge
six 1.16.0 pypi_0 pypi
sniffio 1.3.0 pypi_0 pypi
soupsieve 2.5 pyhd8ed1ab_1 conda-forge
sqlalchemy 2.0.23 pypi_0 pypi
stack-data 0.6.3 pypi_0 pypi
statsmodels 0.14.0 pypi_0 pypi
stopit 1.1.2 pypi_0 pypi
tangled-up-in-unicode 0.2.0 pypi_0 pypi
tbb 2021.11.0 pypi_0 pypi
tensorboard 2.15.2 pypi_0 pypi
tensorboard-data-server 0.7.2 pypi_0 pypi
tensorflow 2.15.0 pypi_0 pypi
tensorflow-estimator 2.15.0 pypi_0 pypi
tensorflow-intel 2.15.0 pypi_0 pypi
tensorflow-io-gcs-filesystem 0.31.0 pypi_0 pypi
termcolor 2.4.0 pypi_0 pypi
terminado 0.18.0 pypi_0 pypi
threadpoolctl 3.2.0 pypi_0 pypi
tifffile 2023.12.9 pypi_0 pypi
tinycss2 1.2.1 pypi_0 pypi
tk 8.6.13 h5226925_1 conda-forge
tornado 6.4 pypi_0 pypi
tpot 0.12.1 pypi_0 pypi
tqdm 4.66.1 pypi_0 pypi
traitlets 5.14.0 pypi_0 pypi
tslearn 0.6.3 pypi_0 pypi
typeguard 4.1.5 pypi_0 pypi
types-python-dateutil 2.8.19.14 pypi_0 pypi
typing-extensions 4.9.0 pypi_0 pypi
tzdata 2023.3 pypi_0 pypi
ucrt 10.0.22621.0 h57928b3_0 conda-forge
update-checker 0.18.0 pypi_0 pypi
uri-template 1.3.0 pypi_0 pypi
urllib3 2.1.0 pyhd8ed1ab_0 conda-forge
vc 14.3 h64f974e_17 conda-forge
vc14_runtime 14.38.33130 h82b7239_18 conda-forge
visions 0.7.5 pypi_0 pypi
vs2015_runtime 14.38.33130 hcb4865c_18 conda-forge
wcwidth 0.2.12 pypi_0 pypi
webcolors 1.13 pypi_0 pypi
webencodings 0.5.1 pypi_0 pypi
websocket-client 1.7.0 pypi_0 pypi
werkzeug 3.0.1 pypi_0 pypi
wheel 0.42.0 pyhd8ed1ab_0 conda-forge
widgetsnbextension 4.0.9 pypi_0 pypi
win_inet_pton 1.1.0 pyhd8ed1ab_6 conda-forge
wordcloud 1.9.3 pypi_0 pypi
wrapt 1.14.1 pypi_0 pypi
xgboost 2.0.2 pypi_0 pypi
xz 5.2.6 h8d14728_0 conda-forge
yaml 0.2.5 h8ffe710_2 conda-forge
ydata-profiling 4.6.3 pypi_0 pypi

conda env:
name: howest
channels:
- conda-forge
- defaults
dependencies:
- beautifulsoup4=4.12.2=pyha770c72_0
- blis=0.9.0=hcfcfb64_1
- brotli-python=1.1.0=py311h12c1d0e_1
- bs4=4.12.2=hd8ed1ab_0
- bzip2=1.0.8=hcfcfb64_5
- ca-certificates=2023.11.17=h56e8100_0
- certifi=2023.11.17=pyhd8ed1ab_0
- charset-normalizer=3.3.2=pyhd8ed1ab_0
- idna=3.6=pyhd8ed1ab_0
- intel-openmp=2024.0.0=h57928b3_49840
- libblas=3.9.0=20_win64_blis
- libcblas=3.9.0=20_win64_blis
- libexpat=2.5.0=h63175ca_1
- libffi=3.4.2=h8ffe710_5
- libhwloc=2.9.3=default_haede6df_1009
- libiconv=1.17=hcfcfb64_2
- liblapack=3.9.0=5_hd5c7e75_netlib
- libsqlite=3.44.2=hcfcfb64_0
- libxml2=2.11.6=hc3477c8_0
- libzlib=1.2.13=hcfcfb64_5
- m2w64-gcc-libgfortran=5.3.0=6
- m2w64-gcc-libs=5.3.0=7
- m2w64-gcc-libs-core=5.3.0=7
- m2w64-gmp=6.1.0=2
- m2w64-libwinpthread-git=5.0.0.4634.697f757=2
- mkl=2024.0.0=h66d3029_49657
- msys2-conda-epoch=20160418=1
- openssl=3.2.0=hcfcfb64_1
- pip=23.3.2=pyhd8ed1ab_0
- pthreads-win32=2.9.1=hfa6e2cd_3
- pysocks=1.7.1=pyh0701188_6
- python=3.11.7=h2628c8c_1_cpython
- python_abi=3.11=4_cp311
- pyyaml=6.0.1=py311ha68e1ae_1
- requests=2.31.0=pyhd8ed1ab_0
- setuptools=69.0.3=pyhd8ed1ab_0
- soupsieve=2.5=pyhd8ed1ab_1
- tk=8.6.13=h5226925_1
- ucrt=10.0.22621.0=h57928b3_0
- urllib3=2.1.0=pyhd8ed1ab_0
- vc=14.3=h64f974e_17
- vc14_runtime=14.38.33130=h82b7239_18
- vs2015_runtime=14.38.33130=hcb4865c_18
- wheel=0.42.0=pyhd8ed1ab_0
- win_inet_pton=1.1.0=pyhd8ed1ab_6
- xz=5.2.6=h8d14728_0
- yaml=0.2.5=h8ffe710_2
- pip:
- absl-py==2.1.0
- alembic==1.13.0
- annotated-types==0.6.0
- anyio==4.1.0
- argon2-cffi==23.1.0
- argon2-cffi-bindings==21.2.0
- arrow==1.3.0
- asttokens==2.4.1
- astunparse==1.6.3
- async-lru==2.0.4
- attrs==23.1.0
- babel==2.13.1
- bleach==6.1.0
- cachetools==5.3.2
- cffi==1.16.0
- click==8.1.7
- colorama==0.4.6
- colorlog==6.8.0
- comm==0.2.0
- contourpy==1.2.0
- cycler==0.12.1
- daal==2024.0.1
- daal4py==2024.0.1
- dacite==1.8.1
- deap==1.4.1
- debugpy==1.8.0
- decorator==5.1.1
- defusedxml==0.7.1
- executing==2.0.1
- fastjsonschema==2.19.0
- flatbuffers==23.5.26
- fonttools==4.46.0
- fqdn==1.5.1
- gast==0.5.4
- google-auth==2.28.1
- google-auth-oauthlib==1.2.0
- google-pasta==0.2.0
- greenlet==3.0.1
- grpcio==1.62.0
- h5py==3.10.0
- htmlmin==0.1.12
- imagehash==4.3.1
- imageio==2.33.1
- imbalanced-learn==0.11.0
- imblearn==0.0
- ipykernel==6.27.1
- ipython==8.18.1
- ipywidgets==8.1.1
- isoduration==20.11.0
- jedi==0.19.1
- jinja2==3.1.2
- joblib==1.3.2
- json5==0.9.14
- jsonpointer==2.4
- jsonschema==4.20.0
- jsonschema-specifications==2023.11.2
- jupyter==1.0.0
- jupyter-client==8.6.0
- jupyter-console==6.6.3
- jupyter-core==5.5.0
- jupyter-events==0.9.0
- jupyter-lsp==2.2.1
- jupyter-server==2.12.1
- jupyter-server-terminals==0.5.0
- jupyterlab==4.0.9
- jupyterlab-execute-time==3.1.0
- jupyterlab-pygments==0.3.0
- jupyterlab-server==2.25.2
- jupyterlab-widgets==3.0.9
- keras==2.15.0
- kiwisolver==1.4.5
- lazy-loader==0.3
- libclang==16.0.6
- llvmlite==0.41.1
- m3u8downloader==0.10.1
- mako==1.3.0
- markdown==3.5.2
- markupsafe==2.1.3
- matplotlib==3.8.2
- matplotlib-inline==0.1.6
- mistune==3.0.2
- ml-dtypes==0.2.0
- multimethod==1.10
- nbclient==0.9.0
- nbconvert==7.12.0
- nbformat==5.9.2
- nest-asyncio==1.5.8
- networkx==3.2.1
- nltk==3.8.1
- notebook==7.0.6
- notebook-shim==0.2.3
- numba==0.58.1
- numpy==1.25.2
- oauthlib==3.2.2
- opt-einsum==3.3.0
- optuna==3.5.0
- overrides==7.4.0
- packaging==23.2
- pandas==2.1.4
- pandocfilters==1.5.0
- parso==0.8.3
- patsy==0.5.4
- phik==0.12.3
- pillow==10.1.0
- platformdirs==4.1.0
- playwright==1.40.0
- prometheus-client==0.19.0
- prompt-toolkit==3.0.41
- protobuf==4.25.3
- psutil==5.9.6
- pure-eval==0.2.2
- pyasn1==0.5.1
- pyasn1-modules==0.3.0
- pycparser==2.21
- pydantic==2.5.2
- pydantic-core==2.14.5
- pyee==11.0.1
- pygments==2.17.2
- pyparsing==3.1.1
- python-dateutil==2.8.2
- python-json-logger==2.0.7
- pytz==2023.3.post1
- pywavelets==1.5.0
- pywin32==306
- pywinpty==2.0.12
- pyzmq==25.1.2
- qtconsole==5.5.1
- qtpy==2.4.1
- referencing==0.32.0
- regex==2023.10.3
- requests-oauthlib==1.3.1
- rfc3339-validator==0.1.4
- rfc3986-validator==0.1.1
- rpds-py==0.13.2
- rsa==4.9
- ruff==0.1.7
- scikeras==0.12.0
- scikit-image==0.22.0
- scikit-learn==1.3.2
- scikit-learn-intelex==2024.0.1
- scipy==1.11.4
- seaborn==0.13.2
- send2trash==1.8.2
- six==1.16.0
- sniffio==1.3.0
- sqlalchemy==2.0.23
- stack-data==0.6.3
- statsmodels==0.14.0
- stopit==1.1.2
- tangled-up-in-unicode==0.2.0
- tbb==2021.11.0
- tensorboard==2.15.2
- tensorboard-data-server==0.7.2
- tensorflow==2.15.0
- tensorflow-estimator==2.15.0
- tensorflow-intel==2.15.0
- tensorflow-io-gcs-filesystem==0.31.0
- termcolor==2.4.0
- terminado==0.18.0
- threadpoolctl==3.2.0
- tifffile==2023.12.9
- tinycss2==1.2.1
- tornado==6.4
- tpot==0.12.1
- tqdm==4.66.1
- traitlets==5.14.0
- tslearn==0.6.3
- typeguard==4.1.5
- types-python-dateutil==2.8.19.14
- typing-extensions==4.9.0
- tzdata==2023.3
- update-checker==0.18.0
- uri-template==1.3.0
- visions==0.7.5
- wcwidth==0.2.12
- webcolors==1.13
- webencodings==0.5.1
- websocket-client==1.7.0
- werkzeug==3.0.1
- widgetsnbextension==4.0.9
- wordcloud==1.9.3
- wrapt==1.14.1
- xgboost==2.0.2
- ydata-profiling==4.6.3
prefix: e:\miniforge3\envs\howest

Command Line Output
[I 2024-03-13 10:48:32.927 ServerApp] Connecting to kernel c66332e1-8c3e-455e-8ea6-afd1e96b6377.
[I 2024-03-13 10:48:32.972 ServerApp] Connecting to kernel 280d9dfb-66a3-4d82-9438-b216d4005ec3.
[I 2024-03-13 10:48:32.987 ServerApp] Connecting to kernel eb51ffc9-65fd-481b-90e4-8ba3ab652ba8.
[I 2024-03-13 10:48:33.549 ServerApp] Connecting to kernel eb51ffc9-65fd-481b-90e4-8ba3ab652ba8.
[I 2024-03-13 10:48:33.586 ServerApp] Connecting to kernel c66332e1-8c3e-455e-8ea6-afd1e96b6377.
[I 2024-03-13 10:48:33.608 ServerApp] Connecting to kernel 280d9dfb-66a3-4d82-9438-b216d4005ec3.
Browser Output

jlab_core.a61821d8a2821d8a2a9c35d7996:1
Uncaught (in promise) Error: CodeMirrorEditor already set. at ie.setEditor (jlab_core.a61821d8a2a9c35d7996:1:345444) at jlab_core.a61821d8a2a9c35d7996:1:228584
  | setEditor | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1 -- | -- | -- | --   | (anonymous) | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | Promise.then (async) |   |     | re | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | de | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | _addCellProvider | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | (anonymous) | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | _onCellsChanged | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | m | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | l | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | emit | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | (anonymous) | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | _onSharedModelChanged | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | m | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | l | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | emit | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | D._onYCellsChanged | @ | 1168.0a95b9c93afe61c…5b9c93afe61ceb527:1   | r | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | ji | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | vc | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | _callObserver | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | (anonymous) | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | r | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | $o | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | Jo | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | transact | @ | 383.db345dbeef5ef774…45dbeef5ef774e50c:1   | transact | @ | 1168.0a95b9c93afe61c…5b9c93afe61ceb527:1   | insertCells | @ | 1168.0a95b9c93afe61c…5b9c93afe61ceb527:1   | insertCell | @ | 1168.0a95b9c93afe61c…5b9c93afe61ceb527:1   | p | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | execute | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | execute | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | m | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | s | @ | jlab_core.a61821d8a2…821d8a2a9c35d7996:1   | Ue | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | Qe | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | je | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | al | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | ul | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | (anonymous) | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | Os | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | De | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | dl | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | lt | @ | 3935.905285b8e22c337…285b8e22c337968ed:2   | tt | @ | 3935.905285b8e22c337…285b8e22c337968ed:2

Copy link

welcome bot commented Mar 13, 2024

Thank you for opening your first issue in this project! Engagement like this is essential for open source projects! 🤗

If you haven't done so already, check out Jupyter's Code of Conduct. Also, please try to follow the issue template as it helps other other community members to contribute more effectively.
welcome
You can meet the other Jovyans by joining our Discourse forum. There is also an intro thread there where you can stop by and say Hi! 👋

Welcome to the Jupyter community! 🎉

@jupyterlab-probot jupyterlab-probot bot added the status:Needs Triage Applied to new issues that need triage label Mar 13, 2024
@krassowski
Copy link
Member

krassowski commented Mar 13, 2024

JupyterLab version: 4.0.9

There has been a lot of work on improving search since JupyterLab 4.0.9 was released. There have been also security patches released since then. Can you please test with the latest version available (4.1.4 as of time of writing)?

@svaningelgem
Copy link
Author

Can you please test with the latest version available (4.1.4 as of time of writing)?

I just upgraded:

Successfully installed h11-0.14.0 httpcore-1.0.4 httpx-0.27.0 jupyter_client-8.6.1 jupyter_core-5.7.2 jupyter_server-2.13.0 jupyter_server_terminals-0.5.3 jupyterlab-4.1.4 jupyterlab_server-2.25.4

==> So now running on lab 4.1.4

And the issue still remains.

@FoSuCloud
Copy link
Contributor

related pr: 14837
Hi, @krassowski It seems that the code this._stateChanged.emit(); you added in packages/notebook/src/searchprovider.ts caused
the_updateSearch function of packages/documentsearch/src/searchmodel.ts to be executed.

@krassowski
Copy link
Member

For reference:

private async _onCellsChanged(
cells: CellList,
changes: IObservableList.IChangedArgs<ICellModel>
): Promise<void> {
switch (changes.type) {
case 'add':
changes.newValues.forEach((model, index) => {
this._addCellProvider(changes.newIndex + index);
});
break;
case 'move':
ArrayExt.move(
this._searchProviders,
changes.oldIndex,
changes.newIndex
);
break;
case 'remove':
for (let index = 0; index < changes.oldValues.length; index++) {
this._removeCellProvider(changes.oldIndex);
}
break;
case 'set':
changes.newValues.forEach((model, index) => {
this._addCellProvider(changes.newIndex + index);
this._removeCellProvider(changes.newIndex + index + 1);
});
break;
}
this._stateChanged.emit();
}

This is indeed intended, the search should be updated because if a new cell is added it may contain matches; if a cell is removed matches may be removed; if cell is moved the index of current match may change.

The bug is that it should not lead to scrolling to the current match.

@svaningelgem
Copy link
Author

Additionally @krassowski, it's more than just the scrolling (although that is the most visible side effect): even when the search dialog is closed, it leads to the scrolling (and based on your comment I assume to the execution of the search code).

@krassowski
Copy link
Member

even when the search dialog is closed, it leads to the scrolling

Did you see this in the latest release? I would have thought that this was fixed by #15443 which was included in 4.0.10 so I am not surprised that you saw it in 4.0.9.

@FoSuCloud
Copy link
Contributor

even when the search dialog is closed, it leads to the scrolling

Did you see this in the latest release? I would have thought that this was fixed by #15443 which was included in 4.0.10 so I am not surprised that you saw it in 4.0.9.

no, i can see it in 4.1.15

@svaningelgem
Copy link
Author

Did you see this in the latest release? I would have thought that this was fixed by #15443 which was included in 4.0.10 so I am not surprised that you saw it in 4.0.9.

You're right. I can't reproduce that bit anymore 🥳

@FoSuCloud
Copy link
Contributor

Did you see this in the latest release? I would have thought that this was fixed by #15443 which was included in 4.0.10 so I am not surprised that you saw it in 4.0.9.

You're right. I can't reproduce that bit anymore 🥳

😂 @svaningelgem Are you currently unable to reproduce in the latest release, but it can be reproduced in version 4.1.14?

@svaningelgem
Copy link
Author

svaningelgem commented Mar 21, 2024

wow, the internet is not suitable for nuanced language 🤣
What I wanted to express is the thing that @krassowski reacted on:

even when the search dialog is closed, it leads to the scrolling

That this I can't reproduce anymore.

Adding/deleting a cell still leads to scrolling.

I hope I made the point clearer now 🤔 ?

@FoSuCloud
Copy link
Contributor

sorry , I didn't carefully read @krassowski's response in context

@krassowski krassowski added this to the 4.0.x milestone Mar 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants