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
 
 /*