" scroll_popup.vim " Continuously scrolling popup with multi-line content let s:text = [] for i in range(1, 50) call add(s:text, printf("This is scrolling line %02d — Vim popup demo", i)) endfor let s:firstline = 1 let s:popup_id = -1 function! s:scroll_popup(timer) abort let s:firstline += 1 " Wrap when reaching the end if s:firstline > len(s:text) let s:firstline = 1 endif call popup_setoptions(s:popup_id, {'firstline': s:firstline}) endfunction function! StartScrollingPopup() abort let s:popup_id = popup_create(s:text, { \ 'title': 'Scrolling Popup', \ 'pos': 'center', \ 'minwidth': 60, \ 'minheight': 10, \ 'maxheight': 10, \ 'border': [], \ 'scrollbar': 1, \ 'opacity': 100, \ }) " Scroll every 500 ms call timer_start(1000, function('s:scroll_popup'), {'repeat': -1}) endfunction call StartScrollingPopup()
The issue has been bisected to patch 9.2.0016, with commit 6c20307 and subsequent commit 95e8faa. This is reproducible in at least alacritty and kitty terminal emulators.
There should be no flickering when the popup is scrolled or refreshed.
Bisected to patch 9.2.0016
Operating system: Arch Linux
Terminal: Alacritty / Kitty
$TERM: xterm-256color
Shell: zsh / bash
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Is this relate to #19499 ?
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@mao-yining I can't reproduce with your script in particular, it's likely to be the same issue. The fact that I can't reproduce may be because of the environment different or terminal difference. If you want to confirm if the issues are related you can compile VIM against 89712b9. If your script fails to reproduce with that version, is the same issue.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
I am also pretty sure I am experiencing this issue with the vim-fuzzbox plugin
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
I think #19297 fixes the issue.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
This issue should not be closed, v9.2.0089 still has the issue.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Hi, I have tested above test_popup.vim, but the problem is fixed.
My version is Vim 9.2.0096. Please test the latest version.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@Yggdroot could you please test #19559 ?
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Hi, I have tested above
test_popup.vim, but the problem is fixed. My version is Vim 9.2.0096. Please test the latest version.
try the following reproduce:
function! ShowSimplePopup() call cursor(13, 1) let id = popup_create( \ ['Hello from popup!', \ 'Hello from popup!', \ 'Hello from popup!', \ 'Hello from popup!', \ 'Press q to close'], \ { \ 'line': 10, \ 'col': 20, \ 'minwidth': 30, \ 'maxheight': 5, \ 'padding': [0,1,0,1], \ 'border': [], \ 'filter': 'PopupFilter' \ }) call win_execute(id, 'setlocal cursorline') endfunction function! PopupFilter(id, key) if a:key ==# 'q' call popup_close(a:id) return 1 elseif a:key ==# 'j' call win_execute(a:id, 'normal! j') return 1 elseif a:key ==# 'k' call win_execute(a:id, 'normal! k') return 1 endif return 0 endfunction call ShowSimplePopup()
supose the file called a.vim,
The reproduce may not cover all the scenarios, because I find flicking both on Linux and Windows, but the script can only reproduce the issue on Windows.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.![]()
The PR does not fix the flickering issue.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
try the following reproduce:
Sorry. I cannot reproduce the problem with clean Vim environment.
Is this a problem that only occurs on Windows?
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
try the following reproduce:
Sorry. I cannot reproduce the problem with clean Vim environment. Is this a problem that only occurs on Windows?
No. But I can only make a minimal reproduceable script on Windows.
Press j or k for 10 seconds.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
Sorry. I cannot reproduce the problem with clean Vim environment.
It is easy to reproduce in GVim:
gvim-flicker.gif (view on web)
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
It is easy to reproduce in GVim (a popup window from Leaderf plugin):
Please provide small script to reproduce. If you can't provide way to reproduce easily, it's not EASY.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
It is easy to reproduce, just use my script above,
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
https://github.com/user-attachments/assets/ac089e00-99e2-4220-963d-87f86ce7308a
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
2026-03-03.162710.mp4
hold the j key.
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
@mattn there is a flicker in your video between 00:02 - 00:03
2026-03-03.162710.mp4
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()