fix(lua): make ui_attach()/ui_detach() take effect immediately (#20037)

This commit is contained in:
zeertzjq 2022-09-01 16:37:29 +08:00 committed by GitHub
parent 48ca1d4ce8
commit db2e5f46f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 6 deletions

View File

@ -749,7 +749,7 @@ void ui_comp_add_cb(uint32_t ns_id, LuaRef cb, bool *ext_widgets)
*item = event_cb;
ui_comp_update_ext();
ui_schedule_refresh();
ui_refresh();
}
void ui_comp_remove_cb(uint32_t ns_id)
@ -759,5 +759,5 @@ void ui_comp_remove_cb(uint32_t ns_id)
pmap_del(uint32_t)(&ui_event_cbs, ns_id);
}
ui_comp_update_ext();
ui_schedule_refresh();
ui_refresh();
}

View File

@ -88,10 +88,12 @@ describe('vim.ui_attach', function()
{ "popupmenu_hide" };
}
-- ui_detach stops events, and reenables builtin pum
exec_lua [[ vim.ui_detach(ns) ]]
-- vim.ui_detach() stops events, and reenables builtin pum immediately
exec_lua [[
vim.ui_detach(ns)
vim.fn.complete(1, {'food', 'foobar', 'foo'})
]]
funcs.complete(1, {'food', 'foobar', 'foo'})
screen:expect{grid=[[
food^ |
{3:food }{1: }|
@ -102,6 +104,5 @@ describe('vim.ui_attach', function()
expect_events {
}
end)
end)