Problem: In gvim on Windows, a certain problem can occur when the WM_SETFOCUS event sent after an external command is not processed immediately.
The problem is that Test_normal11_showcmd may fail when running the test_normal.vim test. Investigation revealed that the trigger was an external command executed in the previous test,
Test_mouse_shape_after_failed_change, when two tests were executed consecutively. In gvim on Windows, a WM_SETFOCUS event will be sent when an external command finishes executing. This WM_SETFOCUS event is not processed immediately, but rather by redraw, which is expected to update showcmd. Because it is queued in typebuf at this time, clear_showcmd(), which expects typebuf to be empty, cannot update showcmd.
Solution: After posting WM_SETFOCUS, run the message loop to process it as quickly as possible.
Also added a test that simulates the above problem.
https://github.com/vim/vim/pull/19167
(2 files)
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()
I don't know why this isn't happening with the existing CI. I think it's probably due to one of the if_xxx interfaces.
I've disabled the patch so you can see that the newly added tests fail without the patch. See below:
—
Reply to this email directly, view it on GitHub.
You are receiving this because you are subscribed to this thread.![]()