Skip to content

Changing tab doesn't close popup opened via YCMHover - Therefore, YCMHover doesn't open popup if an open such popup was left in another tab. #4330

@Aster89

Description

@Aster89

Issue Prelude

Please complete these steps and check these boxes (by putting an x inside
the brackets) before filing your issue:

  • I have read and understood YCM's CONTRIBUTING document.
  • I have read and understood YCM's CODE_OF_CONDUCT document.
  • I have read and understood YCM's README, especially the
    Frequently Asked Questions section.
  • I have searched YCM's issue tracker to find issues similar to the one I'm
    about to report and couldn't find an answer to my problem. (Example Google
    search.
    )
  • If filing a bug report, I have included the output of vim --version.
  • If filing a bug report, I have included the output of :YcmDebugInfo.
  • If filing a bug report, I have attached the contents of the logfiles using
    the :YcmToggleLogs command.
  • If filing a bug report, I have included which OS (including specific OS
    version) I am using.
  • If filing a bug report, I have included a minimal test case that reproduces
    my issue, using vim -Nu /path/to/YCM/vimrc_ycm_minimal, including what I
    expected to happen and what actually happened.
  • If filing a installation failure report, I have included the entire output
    of install.py (or cmake/make/ninja) including its invocation
  • I understand this is an open-source project staffed by volunteers and
    that any help I receive is a selfless, heartfelt gift of their free time. I
    know I am not entitled to anything and will be polite and courteous.
  • I understand my issue may be closed if it becomes obvious I didn't
    actually perform all of these steps.

Thank you for adhering to this process! It ensures your issue is resolved
quickly and that neither your nor our time is needlessly wasted.

Issue Details

Provide a clear description of the problem, including the following key
questions:

  • What did you do?
  1. vim -Nu /path/to/YCM/ycm_vimrc_minimal some-file.cpp
  2. open the file in two separe tabs, e.g. Ctrl-wsCtrl-wT (or different files, it doesn't matter)
  3. wait for the popup to come up on some identifier (or trigger it with a manual call to YCMHover)
  4. gt twice
    • you'll see the popup hasn't closed; this is the reason for what I observe next;
  5. gt
    • here there's no popup yet
  6. repeat just step 3,
    • no popup opens, because the one on the other tab is still open
  • What did you expect to happen?

That a popup closes when I change tab, just like it closes when I change window. This in turn means that step 6 above would result in the popup being opened.

  • What actually happened?

Read repro steps.

Diagnostic data

Output of vim --version

VIM - Vi IMproved 9.2 (2026 Feb 14, compiled May 07 2026 19:14:51)
Included patches: 1-450
Compiled by Arch Linux
Huge version with GTK3 GUI.  Features included (+) or not (-):
+acl                +cursorshape        +jumplist           +multi_byte         -sodium             +vertsplit
+arabic             +dialog_con_gui     +keymap             +multi_lang         +sound              +vim9script
+autocmd            +diff               +lambda             -mzscheme           +spell              +viminfo
+autochdir          +digraphs           +langmap            +netbeans_intg      +startuptime        +virtualedit
-autoservername     +dnd                +libcall            +num64              +statusline         +visual
+balloon_eval       -ebcdic             +linebreak          +packages           -sun_workshop       +visualextra
+balloon_eval_term  +emacs_tags         +lispindent         +path_extra         +syntax             +vreplace
+browse             +eval               +listcmds           +perl/dyn           +tabpanel           +wayland
++builtin_terms     +ex_extra           +localmap           +persistent_undo    +tag_binary         +wayland_clipboard
+byte_offset        +extra_search       +lua/dyn            +popupwin           -tag_old_static     +wildignore
+channel            -farsi              +menu               +postscript         -tag_any_white      +wildmenu
+cindent            +file_in_path       +mksession          +printer            +tcl/dyn            +windows
+clientserver       +find_in_path       +modify_fname       +profile            +termguicolors      +writebackup
+clipboard          +float              +mouse              -python             +terminal           +X11
+clipboard_provider +folding            +mouseshape         +python3/dyn        +terminfo           +xattr
+cmdline_compl      -footer             +mouse_dec          +quickfix           +termresponse       -xfontset
+cmdline_hist       +fork()             +mouse_gpm          +reltime            +textobjects        +xim
+cmdline_info       +gettext            -mouse_jsbterm      +rightleft          +textprop           -xpm
+comments           -hangul_input       +mouse_netterm      +ruby/dyn           +timers             +xsmp_interact
+conceal            +iconv              +mouse_sgr          +scrollbind         +title              +xterm_clipboard
+cryptv             +insert_expand      -mouse_sysmouse     +signs              +toolbar            -xterm_save
+cscope             +ipv6               +mouse_urxvt        +smartindent        +user_commands
+cursorbind         +job                +mouse_xterm        +socketserver       +vartabs
   system vimrc file: "/etc/vimrc"
     user vimrc file: "$HOME/.vimrc"
 2nd user vimrc file: "~/.vim/vimrc"
 3rd user vimrc file: "~/.config/vim/vimrc"
      user exrc file: "$HOME/.exrc"
  system gvimrc file: "/etc/gvimrc"
    user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
3rd user gvimrc file: "~/.config/vim/gvimrc"
       defaults file: "$VIMRUNTIME/defaults.vim"
    system menu file: "$VIMRUNTIME/menu.vim"
  fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/clo
udproviders -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/glycin-2 -I/usr/include/at-spi2-atk/2.0 -I/usr/incl
ude/at-spi-2.0 -I/usr/include/atk-1.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/fribidi -I/usr/include/p
ixman-1 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gio-unix-2.0 -I/usr/include/glib-
2.0 -I/usr/lib/glib-2.0/include -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/sysprof-6 -march=x86-64 -mtune=generi
c -O2 -pipe -fno-plt -fexceptions -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fno-omit-frame-point
er -mno-omit-leaf-frame-pointer -g -ffile-prefix-map=/build/vim/src=/usr/src/debug/vim -flto=auto -D_REENTRANT -U_FORTIFY_SOURCE
-D_FORTIFY_SOURCE=1
Linking: gcc -Wl,-E -Wl,-rpath,/usr/lib/perl5/5.42/core_perl/CORE -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,n
ow -Wl,-z,pack-relative-relocs -flto=auto -L/usr/local/lib -o vim -lgtk-3 -lgdk-3 -lpangocairo-1.0 -lcairo-gobject -lgdk_pixbuf-2
.0 -latk-1.0 -lpango-1.0 -lcairo -lharfbuzz -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lz -lSM -lICE -lXt -lX11 -lwayland-client -lm -lX
dmcp -lSM -lICE -lm -ltinfo -lnsl -lcanberra -lacl -lattr -lgpm -L/usr/lib -ltclstub8.6 -ldl -lz -lpthread -lm

Output of YcmDebugInfo

Printing YouCompleteMe debug information...
-- Resolve completions: Up front
-- Client logfile: /tmp/ycm_gktt3l0w.log
-- Server Python interpreter: /usr/bin/python3
-- Server Python version: 3.14.4
-- Server has Clang support compiled in: False
-- Clang version: None
-- Extra configuration file found and loaded
-- Extra configuration path: /home/enrico/.ycm_extra_conf.py
-- C-family completer debug information:
--   Clangd running
--   Clangd process ID: 1291718
--   Clangd executable: ['/home/enrico/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/clangd/output/bin/clangd', '-heade
r-insertion-decorators=0', '-resource-dir=/home/enrico/.vim/plugged/YouCompleteMe/third_party/ycmd/third_party/clang/lib/clang/21
.1.3', '-limit-results=500', '-log=verbose']
--   Clangd logfiles:
--     /tmp/clangd_stderrvk2slo3x.log
--   Clangd Server State: Initialized
--   Clangd Project Directory: /home/enrico
--   Clangd Open Workspaces: {'/home/enrico'}
--   Clangd Settings: {}
--   Clangd Compilation Command: ['clang-tool', '-x', 'c++', '-std=c++26', '-Wall', '-Wextra', '-Wattributes', '-Wconversion', '/
home/enrico/uffa.cpp']
-- Server running at: http://127.0.0.1:35185
-- Server process ID: 1291676
-- Server logfiles:
--   /tmp/ycmd_35185_stdout_12qasvpu.log
--   /tmp/ycmd_35185_stderr_gvfxfnv5.log
-- Semantic highlighting supported: True
-- Virtual text supported: True
-- Popup windows supported: True

Output of YcmDiags

Irrelevant. It can as well be empty.

Output of git rev-parse HEAD in YouCompleteMe installation directory

f8fbc1ddf440b0b34ac23bcd7b7d8d14a7fb80e6

Contents of YCM, ycmd and completion engine logfiles

I think this is not needed here. Let me know if I'm mistaken.

OS version, distribution, etc.

Up-to-date Arch.

Output of build/install commands

Irrelevant, I believe.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions