Mercurial > vim
diff src/popupwin.c @ 17817:e8a7029efa40 v8.1.1905
patch 8.1.1905: cannot set all properties of the info popup
Commit: https://github.com/vim/vim/commit/c7c5f10a36fdeea353e026da28526ff9fb35e367
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Aug 21 18:31:03 2019 +0200
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().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Wed, 21 Aug 2019 18:45:04 +0200 |
parents | 9ec2526c04c5 |
children | fe92aaf166c1 |
line wrap: on
line diff
--- a/src/popupwin.c +++ b/src/popupwin.c @@ -2058,6 +2058,18 @@ f_popup_close(typval_T *argvars, typval_ 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 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 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 /*