diff src/structs.h @ 22886:38324d4f1c94 v8.2.1990

patch 8.2.1990: cursor position wrong in terminal popup with finished job Commit: https://github.com/vim/vim/commit/6a07644db30cb5f3d0c6dc5eb2c348b6289da553 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Nov 15 20:32:58 2020 +0100 patch 8.2.1990: cursor position wrong in terminal popup with finished job Problem: Cursor position wrong in terminal popup with finished job. Solution: Only add the top and left offset when not done already. (closes #7298)
author Bram Moolenaar <Bram@vim.org>
date Sun, 15 Nov 2020 20:45:03 +0100
parents 80bd5de5dcab
children 57b6427c18e4
line wrap: on
line diff
--- a/src/structs.h
+++ b/src/structs.h
@@ -3348,6 +3348,10 @@ struct window_S
 				    // top of the window
     char	w_topline_was_set;  // flag set to TRUE when topline is set,
 				    // e.g. by winrestview()
+
+    linenr_T	w_botline;	    // number of the line below the bottom of
+				    // the window
+
 #ifdef FEAT_DIFF
     int		w_topfill;	    // number of filler lines above w_topline
     int		w_old_topfill;	    // w_topfill at last redraw
@@ -3361,6 +3365,12 @@ struct window_S
     colnr_T	w_skipcol;	    // starting column when a single line
 				    // doesn't fit in the window
 
+    int		w_empty_rows;	    // number of ~ rows in window
+#ifdef FEAT_DIFF
+    int		w_filler_rows;	    // number of filler rows at the end of the
+				    // window
+#endif
+
     /*
      * Layout of the window in the screen.
      * May need to add "msg_scrolled" to "w_winrow" in rare situations.
@@ -3368,11 +3378,14 @@ struct window_S
     int		w_winrow;	    // first row of window in screen
     int		w_height;	    // number of rows in window, excluding
 				    // status/command/winbar line(s)
+
     int		w_status_height;    // number of status lines (0 or 1)
     int		w_wincol;	    // Leftmost column of window in screen.
     int		w_width;	    // Width of window, excluding separation.
     int		w_vsep_width;	    // Number of separator columns (0 or 1).
+
     pos_save_T	w_save_cursor;	    // backup of cursor pos and topline
+
 #ifdef FEAT_PROP_POPUP
     int		w_popup_flags;	    // POPF_ values
     int		w_popup_handled;    // POPUP_HANDLE[0-9] flags
@@ -3433,9 +3446,15 @@ struct window_S
 # if defined(FEAT_TIMERS)
     timer_T	*w_popup_timer;	    // timer for closing popup window
 # endif
+
+    int		w_flags;	    // WFLAG_ flags
+
+# define WFLAG_WCOL_OFF_ADDED	1   // popup border and padding were added to
+				    // w_wcol
+# define WFLAG_WROW_OFF_ADDED	2   // popup border and padding were added to
+				    // w_wrow
 #endif
 
-
     /*
      * === start of cached values ====
      */
@@ -3475,14 +3494,6 @@ struct window_S
      */
     int		w_wrow, w_wcol;	    // cursor position in window
 
-    linenr_T	w_botline;	    // number of the line below the bottom of
-				    // the window
-    int		w_empty_rows;	    // number of ~ rows in window
-#ifdef FEAT_DIFF
-    int		w_filler_rows;	    // number of filler rows at the end of the
-				    // window
-#endif
-
     /*
      * Info about the lines currently in the window is remembered to avoid
      * recomputing it every time.  The allocated size of w_lines[] is Rows.