Repository: napari/napari

Issue:
double command-q no longer quitting
## 🐛 Bug

if you press cmd-q, and then press it again (as the dialog instructs), it doesn't quit... it just opens more dialogs

https://user-images.githubusercontent.com/1609449/201672279-161cef46-63c7-4e6f-879f-82fd2a930d7f.mov

(napari 0.4.17 with `conda create -n env napari`)


Discussion:
@tlambert03 What Happens after you clik on dialog and then click cmd-q?  

On Linux shortcut is working, so I worry that it is somehow connected with a lack of focus on dialog. 

Wow, that looks really annoying. I can't reproduce on my macOS 12.6 with pip install of napari 0.4.17 (python 3.9) or via `mamba create -n nap-test python=3.10 napari`. Both cases with pyqt5 backend. The dialog has focus and if I try to click anywhere I get an error beep.

> @tlambert03 What Happens after you clik on dialog and then click cmd-q?

no luck:

https://user-images.githubusercontent.com/1609449/201686902-eca4c5ce-f222-4596-a09e-69a6bd0a89d8.mov

note though... I do see this warning in the console:
```
WARNING: Layer-backing can not be explicitly controlled on 10.14 when built against the 10.14 SDK
09:34:16 WARNING Layer-backing can not be explicitly controlled on 10.14 when built against the 10.14 SDK
2022-11-14 09:34:35.331 napari[58335:782612] modalSession has been exited prematurely - check for a reentrant call to endModalSession:
2022-11-14 09:34:35.332 napari[58335:782612] modalSession has been exited prematurely - check for a reentrant call to endModalSession:
2022-11-14 09:34:35.332 napari[58335:782612] modalSession has been exited prematurely - check for a reentrant call to endModalSession:
2022-11-14 09:34:35.333 napari[58335:782612] modalSession has been exited prematurely - check for a reentrant call to endModalSession:
```

<details>

<summary>conda list</summary>

```
╰─❯ conda list
# packages in environment at /Users/talley/mambaforge/envs/ttt:
#
# Name                    Version                   Build  Channel
alabaster                 0.7.12                     py_0    conda-forge
aom                       3.5.0                hf0c8a7f_0    conda-forge
app-model                 0.1.1              pyhd8ed1ab_0    conda-forge
appdirs                   1.4.4              pyh9f0ad1d_0    conda-forge
appnope                   0.1.3              pyhd8ed1ab_0    conda-forge
asciitree                 0.3.3                      py_2    conda-forge
asttokens                 2.1.0              pyhd8ed1ab_0    conda-forge
attrs                     22.1.0             pyh71513ae_1    conda-forge
babel                     2.11.0             pyhd8ed1ab_0    conda-forge
backcall                  0.2.0              pyh9f0ad1d_0    conda-forge
backports                 1.0                        py_2    conda-forge
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    conda-forge
blosc                     1.21.1               h97e831e_3    conda-forge
bokeh                     2.4.3              pyhd8ed1ab_3    conda-forge
brotli                    1.0.9                hb7f2c08_8    conda-forge
brotli-bin                1.0.9                hb7f2c08_8    conda-forge
brotlipy                  0.7.0           py310h90acd4f_1005    conda-forge
brunsli                   0.1                  h046ec9c_0    conda-forge
bzip2                     1.0.8                h0d85af4_4    conda-forge
c-ares                    1.18.1               h0d85af4_0    conda-forge
c-blosc2                  2.4.3                had5f71b_0    conda-forge
ca-certificates           2022.9.24            h033912b_0    conda-forge
cachey                    0.2.1              pyh9f0ad1d_0    conda-forge
certifi                   2022.9.24          pyhd8ed1ab_0    conda-forge
cffi                      1.15.1          py310ha78151a_2    conda-forge
cfitsio                   4.1.0                h2c97ad1_0    conda-forge
charls                    2.3.4                he49afe7_0    conda-forge
charset-normalizer        2.1.1              pyhd8ed1ab_0    conda-forge
click                     8.1.3           unix_pyhd8ed1ab_2    conda-forge
cloudpickle               2.2.0              pyhd8ed1ab_0    conda-forge
colorama                  0.4.6              pyhd8ed1ab_0    conda-forge
commonmark                0.9.1                      py_0    conda-forge
cryptography              38.0.3          py310hdd0c95c_0    conda-forge
cytoolz                   0.12.0          py310h90acd4f_1    conda-forge
dask                      2022.6.1           pyhd8ed1ab_0    conda-forge
dask-core                 2022.6.1           pyhd8ed1ab_0    conda-forge
dataclasses               0.8                pyhc8e2a94_3    conda-forge
dav1d                     1.0.0                hac89ed1_1    conda-forge
dbus                      1.13.6               h811a1a6_3    conda-forge
debugpy                   1.6.3           py310h7a76584_1    conda-forge
decorator                 5.1.1              pyhd8ed1ab_0    conda-forge
distributed               2022.6.1           pyhd8ed1ab_0    conda-forge
docstring_parser          0.13               pyhd8ed1ab_0    conda-forge
docutils                  0.17.1          py310h2ec42d9_3    conda-forge
entrypoints               0.4                pyhd8ed1ab_0    conda-forge
executing                 1.2.0              pyhd8ed1ab_0    conda-forge
expat                     2.5.0                hf0c8a7f_0    conda-forge
fasteners                 0.17.3             pyhd8ed1ab_0    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
fontconfig                2.14.1               h5bb23bf_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
freetype                  2.12.1               h3f81eb7_0    conda-forge
freetype-py               2.3.0              pyhd8ed1ab_0    conda-forge
fsspec                    2022.11.0          pyhd8ed1ab_0    conda-forge
future                    0.18.2             pyhd8ed1ab_6    conda-forge
gettext                   0.21.1               h8a4c099_0    conda-forge
giflib                    5.2.1                hbcb3906_2    conda-forge
heapdict                  1.0.1                      py_0    conda-forge
hsluv                     5.0.2              pyh44b312d_0    conda-forge
icu                       69.1                 he49afe7_0    conda-forge
idna                      3.4                pyhd8ed1ab_0    conda-forge
imagecodecs               2022.9.26       py310h79a1b8a_3    conda-forge
imageio                   2.22.0             pyhfa7a67d_0    conda-forge
imagesize                 1.4.1              pyhd8ed1ab_0    conda-forge
importlib-metadata        5.0.0              pyha770c72_1    conda-forge
importlib_resources       5.10.0             pyhd8ed1ab_0    conda-forge
in-n-out                  0.1.6              pyhd8ed1ab_0    conda-forge
ipykernel                 6.17.1             pyh736e0ef_0    conda-forge
ipython                   8.6.0              pyhd1c38e8_1    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
jedi                      0.18.1             pyhd8ed1ab_2    conda-forge
jinja2                    3.1.2              pyhd8ed1ab_1    conda-forge
jpeg                      9e                   hac89ed1_2    conda-forge
jsonschema                4.17.0             pyhd8ed1ab_0    conda-forge
jupyter_client            7.4.5              pyhd8ed1ab_0    conda-forge
jupyter_core              5.0.0           py310h2ec42d9_0    conda-forge
jxrlib                    1.1                  h35c211d_2    conda-forge
kiwisolver                1.4.4           py310ha23aa8a_1    conda-forge
krb5                      1.19.3               hb98e516_0    conda-forge
lcms2                     2.14                 h90f4b2a_0    conda-forge
lerc                      4.0.0                hb486fe8_0    conda-forge
libaec                    1.0.6                he49afe7_0    conda-forge
libavif                   0.11.1               he9a59b1_0    conda-forge
libblas                   3.9.0           16_osx64_openblas    conda-forge
libbrotlicommon           1.0.9                hb7f2c08_8    conda-forge
libbrotlidec              1.0.9                hb7f2c08_8    conda-forge
libbrotlienc              1.0.9                hb7f2c08_8    conda-forge
libcblas                  3.9.0           16_osx64_openblas    conda-forge
libclang                  13.0.1          default_he082bbe_0    conda-forge
libcurl                   7.86.0               h581aaea_1    conda-forge
libcxx                    14.0.6               hccf4f1f_0    conda-forge
libdeflate                1.14                 hb7f2c08_0    conda-forge
libedit                   3.1.20191231         h0678c8f_2    conda-forge
libev                     4.33                 haf1e3a3_1    conda-forge
libffi                    3.4.2                h0d85af4_5    conda-forge
libgfortran               5.0.0           9_5_0_h97931a8_26    conda-forge
libgfortran5              11.3.0              h082f757_26    conda-forge
libglib                   2.74.1               h4c723e1_1    conda-forge
libiconv                  1.17                 hac89ed1_0    conda-forge
liblapack                 3.9.0           16_osx64_openblas    conda-forge
libllvm13                 13.0.1               h64f94b2_2    conda-forge
libnghttp2                1.47.0               h5aae05b_1    conda-forge
libopenblas               0.3.21          openmp_h429af6e_3    conda-forge
libpng                    1.6.38               ha978bb4_0    conda-forge
libpq                     14.5                 hd79e848_1    conda-forge
libsodium                 1.0.18               hbcb3906_1    conda-forge
libsqlite                 3.39.4               ha978bb4_0    conda-forge
libssh2                   1.10.0               h47af595_3    conda-forge
libtiff                   4.4.0                hdb44e8a_4    conda-forge
libwebp-base              1.2.4                h775f41a_0    conda-forge
libxcb                    1.13              h0d85af4_1004    conda-forge
libzlib                   1.2.13               hfd90126_4    conda-forge
libzopfli                 1.0.3                h046ec9c_0    conda-forge
llvm-openmp               15.0.4               h61d9ccf_0    conda-forge
locket                    1.0.0              pyhd8ed1ab_0    conda-forge
lz4                       4.0.2           py310h8d4e1d9_0    conda-forge
lz4-c                     1.9.3                he49afe7_1    conda-forge
magicgui                  0.6.0              pyhd8ed1ab_0    conda-forge
markupsafe                2.1.1           py310h90acd4f_2    conda-forge
matplotlib-inline         0.1.6              pyhd8ed1ab_0    conda-forge
msgpack-python            1.0.4           py310ha23aa8a_1    conda-forge
mysql-common              8.0.31               hc4b2c72_0    conda-forge
mysql-libs                8.0.31               h8658499_0    conda-forge
napari                    0.4.17          pyh275ddea_0_pyqt    conda-forge
napari-console            0.0.6              pyhd8ed1ab_0    conda-forge
napari-plugin-engine      0.2.0              pyhd8ed1ab_2    conda-forge
napari-svg                0.1.6              pyhd8ed1ab_0    conda-forge
ncurses                   6.3                  h96cf925_1    conda-forge
nest-asyncio              1.5.6              pyhd8ed1ab_0    conda-forge
networkx                  2.8.8              pyhd8ed1ab_0    conda-forge
npe2                      0.6.1              pyhd8ed1ab_1    conda-forge
nspr                      4.32                 hcd9eead_1    conda-forge
nss                       3.78                 ha8197d3_0    conda-forge
numcodecs                 0.10.2          py310h154be8b_0    conda-forge
numpy                     1.23.4          py310h1b7c290_1    conda-forge
numpydoc                  1.5.0              pyhd8ed1ab_0    conda-forge
openjpeg                  2.5.0                h5d0d7b0_1    conda-forge
openssl                   3.0.7                hfd90126_0    conda-forge
packaging                 21.3               pyhd8ed1ab_0    conda-forge
pandas                    1.5.1           py310hecf8f37_1    conda-forge
parso                     0.8.3              pyhd8ed1ab_0    conda-forge
partd                     1.3.0              pyhd8ed1ab_0    conda-forge
pcre2                     10.40                h1c4e4bc_0    conda-forge
pep517                    0.13.0             pyhd8ed1ab_0    conda-forge
pexpect                   4.8.0              pyh1a96a4e_2    conda-forge
pickleshare               0.7.5                   py_1003    conda-forge
pillow                    9.2.0           py310hffcf78b_3    conda-forge
pint                      0.20.1             pyhd8ed1ab_0    conda-forge
pip                       22.3.1             pyhd8ed1ab_0    conda-forge
pkgutil-resolve-name      1.3.10             pyhd8ed1ab_0    conda-forge
platformdirs              2.5.2              pyhd8ed1ab_1    conda-forge
pooch                     1.6.0              pyhd8ed1ab_0    conda-forge
prompt-toolkit            3.0.32             pyha770c72_0    conda-forge
psutil                    5.9.4           py310h90acd4f_0    conda-forge
psygnal                   0.6.1           py310ha23aa8a_0    conda-forge
pthread-stubs             0.4               hc929b4f_1001    conda-forge
ptyprocess                0.7.0              pyhd3deb0d_0    conda-forge
pure_eval                 0.2.2              pyhd8ed1ab_0    conda-forge
pycparser                 2.21               pyhd8ed1ab_0    conda-forge
pydantic                  1.10.2          py310h90acd4f_1    conda-forge
pygments                  2.13.0             pyhd8ed1ab_0    conda-forge
pyopengl                  3.1.6              pyhd8ed1ab_1    conda-forge
pyopenssl                 22.1.0             pyhd8ed1ab_0    conda-forge
pyparsing                 3.0.9              pyhd8ed1ab_0    conda-forge
pyqt                      5.12.3          py310h2ec42d9_8    conda-forge
pyqt-impl                 5.12.3          py310hea9ccf3_8    conda-forge
pyqt5-sip                 4.19.18         py310hd046c34_8    conda-forge
pyqtchart                 5.12            py310hea9ccf3_8    conda-forge
pyqtwebengine             5.12.1          py310hea9ccf3_8    conda-forge
pyrsistent                0.19.2          py310h90acd4f_0    conda-forge
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.10.6          hc14f532_0_cpython    conda-forge
python-build              0.9.0              pyhd8ed1ab_0    conda-forge
python-dateutil           2.8.2              pyhd8ed1ab_0    conda-forge
python_abi                3.10                    2_cp310    conda-forge
pytomlpp                  1.0.11          py310ha23aa8a_1    conda-forge
pytz                      2022.6             pyhd8ed1ab_0    conda-forge
pywavelets                1.3.0           py310h936d966_2    conda-forge
pyyaml                    6.0             py310h90acd4f_5    conda-forge
pyzmq                     24.0.1          py310hf615a82_1    conda-forge
qt                        5.12.9               h2a607e2_5    conda-forge
qtconsole-base            5.4.0              pyha770c72_0    conda-forge
qtpy                      2.3.0              pyhd8ed1ab_0    conda-forge
readline                  8.1.2                h3899abd_0    conda-forge
requests                  2.28.1             pyhd8ed1ab_1    conda-forge
rich                      12.6.0             pyhd8ed1ab_0    conda-forge
scikit-image              0.19.3          py310hecf8f37_2    conda-forge
scipy                     1.9.3           py310h240c617_2    conda-forge
setuptools                65.5.1             pyhd8ed1ab_0    conda-forge
shellingham               1.5.0              pyhd8ed1ab_0    conda-forge
six                       1.16.0             pyh6c4a22f_0    conda-forge
snappy                    1.1.9                h225ccf5_2    conda-forge
snowballstemmer           2.2.0              pyhd8ed1ab_0    conda-forge
sortedcontainers          2.4.0              pyhd8ed1ab_0    conda-forge
sphinx                    4.5.0              pyh6c4a22f_0    conda-forge
sphinxcontrib-applehelp   1.0.2                      py_0    conda-forge
sphinxcontrib-devhelp     1.0.2                      py_0    conda-forge
sphinxcontrib-htmlhelp    2.0.0              pyhd8ed1ab_0    conda-forge
sphinxcontrib-jsmath      1.0.1                      py_0    conda-forge
sphinxcontrib-qthelp      1.0.3                      py_0    conda-forge
sphinxcontrib-serializinghtml 1.1.5              pyhd8ed1ab_2    conda-forge
sqlite                    3.39.4               h9ae0607_0    conda-forge
stack_data                0.6.1              pyhd8ed1ab_0    conda-forge
superqt                   0.4.0              pyhd8ed1ab_0    conda-forge
tblib                     1.7.0              pyhd8ed1ab_0    conda-forge
tifffile                  2022.10.10         pyhd8ed1ab_0    conda-forge
tk                        8.6.12               h5dbffcc_0    conda-forge
tomli                     2.0.1              pyhd8ed1ab_0    conda-forge
toolz                     0.12.0             pyhd8ed1ab_0    conda-forge
tornado                   6.2             py310h90acd4f_1    conda-forge
tqdm                      4.64.1             pyhd8ed1ab_0    conda-forge
traitlets                 5.5.0              pyhd8ed1ab_0    conda-forge
typer                     0.7.0              pyhd8ed1ab_0    conda-forge
typing-extensions         4.4.0                hd8ed1ab_0    conda-forge
typing_extensions         4.4.0              pyha770c72_0    conda-forge
tzdata                    2022f                h191b570_0    conda-forge
urllib3                   1.26.11            pyhd8ed1ab_0    conda-forge
vispy                     0.11.0          py310h2b26336_1    conda-forge
wcwidth                   0.2.5              pyh9f0ad1d_2    conda-forge
wheel                     0.38.4             pyhd8ed1ab_0    conda-forge
wrapt                     1.14.1          py310h90acd4f_1    conda-forge
xorg-libxau               1.0.9                h35c211d_0    conda-forge
xorg-libxdmcp             1.1.3                h35c211d_0    conda-forge
xz                        5.2.6                h775f41a_0    conda-forge
yaml                      0.2.5                h0d85af4_2    conda-forge
zarr                      2.13.3             pyhd8ed1ab_0    conda-forge
zeromq                    4.3.4                he49afe7_1    conda-forge
zfp                       1.0.0                ha894c9a_3    conda-forge
zict                      2.2.0              pyhd8ed1ab_0    conda-forge
zipp                      3.10.0             pyhd8ed1ab_0    conda-forge
zlib-ng                   2.0.6                hac89ed1_0    conda-forge
zstd                      1.5.2                hfa58983_4    conda-forge
```

</details>

(macos 11.7)
you have `pyqt` in version 5.12.3

Could you try to update to pyqt 5.15? 
Based on the old issue about Big Sur and this warning, it seems updating to 5.15.2 could help
https://github.com/napari/napari/issues/1393#issuecomment-729134340
Or check environment variable `QT_MAC_WANTS_LAYER=1`?
Hmm, i just tried in rosetta, python 3.9, and I'm also getting `pyqt` 5.12.3, all get the warning, and can reproduce the effect.
Edit: checking `mamba repoquery whoneeds pyqt`
` napari 0.4.17  pyh275ddea_0_pyqt pyqt >=5.12.3,!=5.15.0 conda-forge`
Also, `mamba update pyqt` doesn't do anything, 🤔 
If I force latest pyqt (again x86, arm64 only has 5.15.x)
`CONDA_SUBDIR=osx-64 mamba create -n nap-test python=3.9 pyqt=5.15.7`
Then install napari `CONDA_SUBDIR=osx-64  mamba install napari` then everything is good.

So the question is why does napari pull down old pyqt? instead of 5.15.x?

Edit:
`CONDA_SUBDIR=osx-64 mamba create -n nap-test python=3.9 napari=0.4.16`
also pulls pyqt 5.12.3
`  + pyqt                                 5.12.3  py39h6e9494a_8      conda-forge/osx-64     Cached`
Also get the warnings:
```
WARNING: Layer-backing can not be explicitly controlled on 10.14 when built against the 10.14 SDK
16:02:59 WARNING Layer-backing can not be explicitly controlled on 10.14 when built against the 10.14 SDK
```
But there is no quit-warning dialog, so no clear problem.
> But there is no quit-warning dialog, so clear problem.

but this warning is only in 0.4.17, not in 0.4.16.
Right, so the issue with conda installed napari on x86 big sur may have been masked.
Edit: sorry i see I missed the `no`: `no clear problem`
Wonder if this is somehow related to the SSL issue from before:
https://github.com/napari/napari/issues/4891
Do we need to bump the Qt requirement?
> Do we need to bump the Qt requirement?

i would recommend against  this given how broadly Qt is used in the ecosystem.  If you have a critical issue, where a whole bunch of things become possible if you bump your requirement, then maybe... but if you _already_ have supported 5.12, and the only issue you can find is this dialog, then I'd figure out how to patch the dialog for 5.12 rather than potentially cause environment solving problems for someone trying to install napari with anything that wants 5.12
> but if you _already_ have supported 5.12, and the only issue you can find is this dialog, then I'd figure out how to patch the dialog for 5.12 rather than potentially cause environment solving problems for someone trying to install napari with anything that wants 5.12

Yes. But it will be nice if you could check if it is related to the Qt version or not. It will be simpler than trying to reproduce it and preparing a patch. 
> But it will be nice if you could check if it is related to the Qt version or not.

oh sorry; yes, as @psobolewskiPhD has shown above, it is related to qt version.  happens in 5.12 but not in 5.15
Thanks @tlambert03 !
So we have two aspects to this issue:
1. the fact the close-dialog doesn't work right on Qt 5.12—although, it does yield a captive audience 🤣 
2. that a fresh conda-forge env python 3.9 & 3.10, x86 macOS, with napari pulls pyqt 5.12.3 instead of current.
@jaimergp as conda-forge guru, do you have any thoughts on nr. 2 above?

I am afraid you are correct @psobolewskiPhD. I analyzed the logs and while `pyqt 5.15` is initially selected, the solver is forced to backtrack once it reaches openssl=3, which is not compatible:

```
info     libsolv  installing openssl-3.0.7-hfd90126_0
info     libsolv  conflict with rule #2416937
info     libsolv  ANALYZE at 64 ----------------------
info     libsolv  Rule #2416937:
info     libsolv      !pyqt-5.15.7-py39h327fbb6_2 [183866] Install.level19
info     libsolv      qt-main-5.15.6-he04cef1_0 [201591] (w2) Conflict.level64
info     libsolv      qt-main-5.15.6-he0d2461_1 [201592] (w1) Conflict.level64
info     libsolv      next rules: 0 2417004
info     libsolv  Rule #2190019:
info     libsolv      !qt-main-5.15.6-he04cef1_0 [201591] (w1) Conflict.level64
info     libsolv      openssl-1.1.1q-hfd90126_1 [144657] (w2) Conflict.level64
info     libsolv      openssl-1.1.1q-hfe4f2af_0 [144658] Conflict.level64
info     libsolv      openssl-1.1.1s-hfd90126_0 [144659] Conflict.level64
info     libsolv      next rules: 2190020 2378762
info     libsolv  Rule #2189971:
info     libsolv      !qt-main-5.15.6-he0d2461_1 [201592] (w1) Conflict.level64
info     libsolv      openssl-1.1.1q-hfd90126_1 [144657] (w2) Conflict.level64
info     libsolv      openssl-1.1.1q-hfe4f2af_0 [144658] Conflict.level64
info     libsolv      openssl-1.1.1s-hfd90126_0 [144659] Conflict.level64
info     libsolv      next rules: 2189972 2190019
info     libsolv  Rule #2567257:
info     libsolv      !openssl-3.0.7-hfd90126_0 [144669] (w1) Install.level64
info     libsolv      !openssl-1.1.1q-hfd90126_1 [144657] (w2) Conflict.level64
info     libsolv      next rules: 2567258 2567310
info     libsolv  Rule #2567256:
info     libsolv      !openssl-3.0.7-hfd90126_0 [144669] (w1) Install.level64
info     libsolv      !openssl-1.1.1q-hfe4f2af_0 [144658] (w2) Conflict.level64
info     libsolv      next rules: 2567257 2567309
info     libsolv  Rule #2567255:
info     libsolv      !openssl-3.0.7-hfd90126_0 [144669] (w1) Install.level64
info     libsolv      !openssl-1.1.1s-hfd90126_0 [144659] (w2) Conflict.level64
info     libsolv      next rules: 2567256 2567308
info     libsolv  learned rule for level 19 (am 64)
info     libsolv      !openssl-3.0.7-hfd90126_0 [144669] Install.level64
info     libsolv      !pyqt-5.15.7-py39h327fbb6_2 [183866] Install.level19
info     libsolv  reverting decisions (level 64 -> 19)
info     libsolv  decision:     !openssl-3.0.7-hfd90126_0 [144669] Conflict.level19
info     libsolv  new rule: Rule #3459271:
info     libsolv      !openssl-3.0.7-hfd90126_0 [144669] (w1) Conflict.level19
info     libsolv      !pyqt-5.15.7-py39h327fbb6_2 [183866] (w2) Install.level19
info     libsolv      next rules: 2567246 2412589
info     libsolv  prune_to_best_version_conda 2
```

This ends up resolving in such a way that openssl=1 and pyqt=5.12.

I guess this will go away once https://github.com/conda-forge/qt-main-feedstock/pull/63 is dealt with.
OMG @jaimergp you're amazing 🤩 🙏 


Resolving patch:
diff --git a/napari/_qt/qt_main_window.py b/napari/_qt/qt_main_window.py
--- a/napari/_qt/qt_main_window.py
+++ b/napari/_qt/qt_main_window.py
@@ -115,6 +115,10 @@ def __init__(
         self._old_size = None
         self._positions = []
 
+        self._is_close_dialog = {False: True, True: True}
+        # this ia sa workaround for #5335 issue. The dict is used to not
+        # collide shortcuts for close and close all windows
+
         act_dlg = QtActivityDialog(self._qt_viewer._canvas_overlay)
         self._qt_viewer._canvas_overlay.resized.connect(
             act_dlg.move_to_bottom_right
@@ -312,13 +316,21 @@ def close(self, quit_app=False, confirm_need=False):
             self.status_throttler._timer.stop()
         if not quit_app and not self._qt_viewer.viewer.layers:
             return super().close()
+        confirm_need_local = confirm_need and self._is_close_dialog[quit_app]
+        self._is_close_dialog[quit_app] = False
+        # here we save information that we could request confirmation on close
+        # So fi function `close` is called again, we don't ask again but just close
         if (
-            not confirm_need
+            not confirm_need_local
             or not get_settings().application.confirm_close_window
             or ConfirmCloseDialog(self, quit_app).exec_() == QDialog.Accepted
         ):
             self._quit_app = quit_app
+            self._is_close_dialog[quit_app] = True
+            # here we inform that confirmation dialog is not open
             return super().close()
+        self._is_close_dialog[quit_app] = True
+        # here we inform that confirmation dialog is not open
 
     def close_window(self):
         """Close active dialog or active window."""


Test patch: