mirror of
https://github.com/neovim/neovim.git
synced 2024-12-23 20:55:18 -07:00
fix(ui): don't force 'cmdheight' to zero with ext_messages
Remove remaining code that prevents non-zero 'cmdheight' with ext_messages.
This commit is contained in:
parent
f190f758ac
commit
b5a38530ba
@ -777,9 +777,10 @@ This UI extension delegates presentation of messages and dialogs. Messages
|
|||||||
that would otherwise render in the message/cmdline screen space, are emitted
|
that would otherwise render in the message/cmdline screen space, are emitted
|
||||||
as UI events.
|
as UI events.
|
||||||
|
|
||||||
Nvim will not allocate screen space for the cmdline or messages, and
|
Nvim will not allocate screen space for the cmdline or messages. 'cmdheight'
|
||||||
'cmdheight' will be forced zero. Cmdline state is emitted as |ui-cmdline|
|
will be set to zero, but can be changed and used for the replacing cmdline or
|
||||||
events, which the UI must handle.
|
message window. Cmdline state is emitted as |ui-cmdline| events, which the UI
|
||||||
|
must handle.
|
||||||
|
|
||||||
["msg_show", kind, content, replace_last] ~
|
["msg_show", kind, content, replace_last] ~
|
||||||
Display a message to the user.
|
Display a message to the user.
|
||||||
|
@ -227,6 +227,11 @@ void ui_refresh(void)
|
|||||||
if (i < kUIGlobalCount) {
|
if (i < kUIGlobalCount) {
|
||||||
ext_widgets[i] |= ui_cb_ext[i];
|
ext_widgets[i] |= ui_cb_ext[i];
|
||||||
}
|
}
|
||||||
|
// Set 'cmdheight' to zero when ext_messages becomes active.
|
||||||
|
if (i == kUIMessages && !ui_ext[i] && ext_widgets[i]) {
|
||||||
|
set_option_value(kOptCmdheight, NUMBER_OPTVAL(0), 0);
|
||||||
|
command_height();
|
||||||
|
}
|
||||||
ui_ext[i] = ext_widgets[i];
|
ui_ext[i] = ext_widgets[i];
|
||||||
if (i < kUIGlobalCount) {
|
if (i < kUIGlobalCount) {
|
||||||
ui_call_option_set(cstr_as_string(ui_ext_names[i]),
|
ui_call_option_set(cstr_as_string(ui_ext_names[i]),
|
||||||
@ -241,10 +246,6 @@ void ui_refresh(void)
|
|||||||
screen_resize(width, height);
|
screen_resize(width, height);
|
||||||
p_lz = save_p_lz;
|
p_lz = save_p_lz;
|
||||||
|
|
||||||
if (ext_widgets[kUIMessages]) {
|
|
||||||
set_option_value(kOptCmdheight, NUMBER_OPTVAL(0), 0);
|
|
||||||
command_height();
|
|
||||||
}
|
|
||||||
ui_mode_info_set();
|
ui_mode_info_set();
|
||||||
pending_mode_update = true;
|
pending_mode_update = true;
|
||||||
ui_cursor_shape();
|
ui_cursor_shape();
|
||||||
|
@ -5899,10 +5899,6 @@ static void frame_setheight(frame_T *curfrp, int height)
|
|||||||
|
|
||||||
if (curfrp->fr_parent == NULL) {
|
if (curfrp->fr_parent == NULL) {
|
||||||
// topframe: can only change the command line height
|
// topframe: can only change the command line height
|
||||||
// Avoid doing so with external messages.
|
|
||||||
if (ui_has(kUIMessages)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (height > ROWS_AVAIL) {
|
if (height > ROWS_AVAIL) {
|
||||||
// If height is greater than the available space, try to create space for
|
// If height is greater than the available space, try to create space for
|
||||||
// the frame by reducing 'cmdheight' if possible, while making sure
|
// the frame by reducing 'cmdheight' if possible, while making sure
|
||||||
@ -6241,12 +6237,6 @@ const char *did_set_winminwidth(optset_T *args FUNC_ATTR_UNUSED)
|
|||||||
void win_drag_status_line(win_T *dragwin, int offset)
|
void win_drag_status_line(win_T *dragwin, int offset)
|
||||||
{
|
{
|
||||||
frame_T *fr = dragwin->w_frame;
|
frame_T *fr = dragwin->w_frame;
|
||||||
|
|
||||||
// Avoid changing command line height with external messages.
|
|
||||||
if (fr->fr_next == NULL && ui_has(kUIMessages)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
frame_T *curfr = fr;
|
frame_T *curfr = fr;
|
||||||
if (fr != topframe) { // more than one window
|
if (fr != topframe) { // more than one window
|
||||||
fr = fr->fr_parent;
|
fr = fr->fr_parent;
|
||||||
|
@ -1705,19 +1705,24 @@ describe('cmdheight=0', function()
|
|||||||
]])
|
]])
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('cannot be resized at all with external messages', function()
|
it('can be resized with external messages', function()
|
||||||
clear()
|
clear()
|
||||||
screen = new_screen({ rgb = true, ext_messages = true })
|
screen = new_screen({ rgb = true, ext_messages = true })
|
||||||
command('set laststatus=2 mouse=a')
|
command('set laststatus=2 mouse=a')
|
||||||
command('resize -1')
|
command('resize -1')
|
||||||
|
screen:expect([[
|
||||||
|
^ |
|
||||||
|
{1:~ }|*2
|
||||||
|
{3:[No Name] }|
|
||||||
|
|
|
||||||
|
]])
|
||||||
|
api.nvim_input_mouse('left', 'press', '', 0, 3, 10)
|
||||||
|
poke_eventloop()
|
||||||
|
api.nvim_input_mouse('left', 'drag', '', 0, 4, 10)
|
||||||
screen:expect([[
|
screen:expect([[
|
||||||
^ |
|
^ |
|
||||||
{1:~ }|*3
|
{1:~ }|*3
|
||||||
{3:[No Name] }|
|
{3:[No Name] }|
|
||||||
]])
|
]])
|
||||||
api.nvim_input_mouse('left', 'press', '', 0, 6, 10)
|
|
||||||
poke_eventloop()
|
|
||||||
api.nvim_input_mouse('left', 'drag', '', 0, 5, 10)
|
|
||||||
screen:expect_unchanged()
|
|
||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
Loading…
Reference in New Issue
Block a user