@@ -2058,6 +2058,18 @@ f_popup_close(typval_T *argvars, typval_T *rettv UNUSED)
20582058 popup_close_and_callback (wp , & argvars [1 ]);
20592059}
20602060
2061+ static void
2062+ popup_hide (win_T * wp )
2063+ {
2064+ if ((wp -> w_popup_flags & POPF_HIDDEN ) == 0 )
2065+ {
2066+ wp -> w_popup_flags |= POPF_HIDDEN ;
2067+ -- wp -> w_buffer -> b_nwindows ;
2068+ redraw_all_later (NOT_VALID );
2069+ popup_mask_refresh = TRUE;
2070+ }
2071+ }
2072+
20612073/*
20622074 * popup_hide({id})
20632075 */
@@ -2067,10 +2079,17 @@ f_popup_hide(typval_T *argvars, typval_T *rettv UNUSED)
20672079 int id = (int )tv_get_number (argvars );
20682080 win_T * wp = find_popup_win (id );
20692081
2070- if (wp != NULL && (wp -> w_popup_flags & POPF_HIDDEN ) == 0 )
2082+ if (wp != NULL )
2083+ popup_hide (wp );
2084+ }
2085+
2086+ void
2087+ popup_show (win_T * wp )
2088+ {
2089+ if ((wp -> w_popup_flags & POPF_HIDDEN ) != 0 )
20712090 {
2072- wp -> w_popup_flags |= POPF_HIDDEN ;
2073- -- wp -> w_buffer -> b_nwindows ;
2091+ wp -> w_popup_flags &= ~ POPF_HIDDEN ;
2092+ ++ wp -> w_buffer -> b_nwindows ;
20742093 redraw_all_later (NOT_VALID );
20752094 popup_mask_refresh = TRUE;
20762095 }
@@ -2085,13 +2104,8 @@ f_popup_show(typval_T *argvars, typval_T *rettv UNUSED)
20852104 int id = (int )tv_get_number (argvars );
20862105 win_T * wp = find_popup_win (id );
20872106
2088- if (wp != NULL && (wp -> w_popup_flags & POPF_HIDDEN ) != 0 )
2089- {
2090- wp -> w_popup_flags &= ~POPF_HIDDEN ;
2091- ++ wp -> w_buffer -> b_nwindows ;
2092- redraw_all_later (NOT_VALID );
2093- popup_mask_refresh = TRUE;
2094- }
2107+ if (wp != NULL )
2108+ popup_show (wp );
20952109}
20962110
20972111/*
@@ -3314,7 +3328,15 @@ popup_find_info_window(void)
33143328#endif
33153329
33163330 void
3317- f_popup_getpreview (typval_T * argvars UNUSED , typval_T * rettv )
3331+ f_popup_findinfo (typval_T * argvars UNUSED , typval_T * rettv )
3332+ {
3333+ win_T * wp = popup_find_info_window ();
3334+
3335+ rettv -> vval .v_number = wp == NULL ? 0 : wp -> w_id ;
3336+ }
3337+
3338+ void
3339+ f_popup_findpreview (typval_T * argvars UNUSED , typval_T * rettv )
33183340{
33193341 win_T * wp = popup_find_preview_window ();
33203342
@@ -3355,10 +3377,13 @@ popup_create_preview_window(int info)
33553377}
33563378
33573379#if defined(FEAT_QUICKFIX ) || defined(PROTO )
3380+ /*
3381+ * Close any preview popup.
3382+ */
33583383 void
3359- popup_close_preview (int info )
3384+ popup_close_preview (void )
33603385{
3361- win_T * wp = info ? popup_find_info_window () : popup_find_preview_window ();
3386+ win_T * wp = popup_find_preview_window ();
33623387
33633388 if (wp != NULL )
33643389 {
@@ -3369,6 +3394,18 @@ popup_close_preview(int info)
33693394 popup_close_and_callback (wp , & res );
33703395 }
33713396}
3397+
3398+ /*
3399+ * Hide the info popup.
3400+ */
3401+ void
3402+ popup_hide_info (void )
3403+ {
3404+ win_T * wp = popup_find_info_window ();
3405+
3406+ if (wp != NULL )
3407+ popup_hide (wp );
3408+ }
33723409#endif
33733410
33743411/*
0 commit comments