mirror of
https://github.com/vim/vim.git
synced 2025-09-23 03:43:49 -04:00
patch 8.1.1905: cannot set all properties of the info popup
Problem: Cannot set all properties of the info popup. Solution: Add popup_findinfo(). Rename popup_getpreview() to popup_findpreview().
This commit is contained in:
@@ -2058,6 +2058,18 @@ f_popup_close(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
popup_close_and_callback(wp, &argvars[1]);
|
||||
}
|
||||
|
||||
static void
|
||||
popup_hide(win_T *wp)
|
||||
{
|
||||
if ((wp->w_popup_flags & POPF_HIDDEN) == 0)
|
||||
{
|
||||
wp->w_popup_flags |= POPF_HIDDEN;
|
||||
--wp->w_buffer->b_nwindows;
|
||||
redraw_all_later(NOT_VALID);
|
||||
popup_mask_refresh = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* popup_hide({id})
|
||||
*/
|
||||
@@ -2067,10 +2079,17 @@ f_popup_hide(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
int id = (int)tv_get_number(argvars);
|
||||
win_T *wp = find_popup_win(id);
|
||||
|
||||
if (wp != NULL && (wp->w_popup_flags & POPF_HIDDEN) == 0)
|
||||
if (wp != NULL)
|
||||
popup_hide(wp);
|
||||
}
|
||||
|
||||
void
|
||||
popup_show(win_T *wp)
|
||||
{
|
||||
if ((wp->w_popup_flags & POPF_HIDDEN) != 0)
|
||||
{
|
||||
wp->w_popup_flags |= POPF_HIDDEN;
|
||||
--wp->w_buffer->b_nwindows;
|
||||
wp->w_popup_flags &= ~POPF_HIDDEN;
|
||||
++wp->w_buffer->b_nwindows;
|
||||
redraw_all_later(NOT_VALID);
|
||||
popup_mask_refresh = TRUE;
|
||||
}
|
||||
@@ -2085,13 +2104,8 @@ f_popup_show(typval_T *argvars, typval_T *rettv UNUSED)
|
||||
int id = (int)tv_get_number(argvars);
|
||||
win_T *wp = find_popup_win(id);
|
||||
|
||||
if (wp != NULL && (wp->w_popup_flags & POPF_HIDDEN) != 0)
|
||||
{
|
||||
wp->w_popup_flags &= ~POPF_HIDDEN;
|
||||
++wp->w_buffer->b_nwindows;
|
||||
redraw_all_later(NOT_VALID);
|
||||
popup_mask_refresh = TRUE;
|
||||
}
|
||||
if (wp != NULL)
|
||||
popup_show(wp);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -3314,7 +3328,15 @@ popup_find_info_window(void)
|
||||
#endif
|
||||
|
||||
void
|
||||
f_popup_getpreview(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
f_popup_findinfo(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
{
|
||||
win_T *wp = popup_find_info_window();
|
||||
|
||||
rettv->vval.v_number = wp == NULL ? 0 : wp->w_id;
|
||||
}
|
||||
|
||||
void
|
||||
f_popup_findpreview(typval_T *argvars UNUSED, typval_T *rettv)
|
||||
{
|
||||
win_T *wp = popup_find_preview_window();
|
||||
|
||||
@@ -3355,10 +3377,13 @@ popup_create_preview_window(int info)
|
||||
}
|
||||
|
||||
#if defined(FEAT_QUICKFIX) || defined(PROTO)
|
||||
/*
|
||||
* Close any preview popup.
|
||||
*/
|
||||
void
|
||||
popup_close_preview(int info)
|
||||
popup_close_preview(void)
|
||||
{
|
||||
win_T *wp = info ? popup_find_info_window() : popup_find_preview_window();
|
||||
win_T *wp = popup_find_preview_window();
|
||||
|
||||
if (wp != NULL)
|
||||
{
|
||||
@@ -3369,6 +3394,18 @@ popup_close_preview(int info)
|
||||
popup_close_and_callback(wp, &res);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Hide the info popup.
|
||||
*/
|
||||
void
|
||||
popup_hide_info(void)
|
||||
{
|
||||
win_T *wp = popup_find_info_window();
|
||||
|
||||
if (wp != NULL)
|
||||
popup_hide(wp);
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user