diff src/textprop.c @ 30231:0d084880276a v9.0.0451

patch 9.0.0451: virtual text "above" does not work with 'nowrap' Commit: https://github.com/vim/vim/commit/c9dc03fff5acf6fb91a923fb95006f9c2bca6141 Author: Bram Moolenaar <Bram@vim.org> Date: Mon Sep 12 17:51:07 2022 +0100 patch 9.0.0451: virtual text "above" does not work with 'nowrap' Problem: Virtual text "above" does not work with 'nowrap'. Solution: Do wrap the line after. (closes https://github.com/vim/vim/issues/11084)
author Bram Moolenaar <Bram@vim.org>
date Mon, 12 Sep 2022 19:00:05 +0200
parents ed6f3d2593df
children 8d660a45299f
line wrap: on
line diff
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -608,12 +608,12 @@ get_text_props(buf_T *buf, linenr_T lnum
 }
 
 /*
- * Return the number of text properties with "below" alignment in line "lnum".
- * A "right" aligned property also goes below after a "below" or other "right"
- * aligned property.
+ * Return the number of text properties with "above" or "below" alignment in
+ * line "lnum".  A "right" aligned property also goes below after a "below" or
+ * other "right" aligned property.
  */
     int
-prop_count_below(buf_T *buf, linenr_T lnum)
+prop_count_above_below(buf_T *buf, linenr_T lnum)
 {
     char_u	*props;
     int		count = get_text_props(buf, lnum, &props, FALSE);
@@ -636,6 +636,11 @@ prop_count_below(buf_T *buf, linenr_T ln
 		next_right_goes_below = TRUE;
 		++result;
 	    }
+	    else if (prop.tp_flags & TP_FLAG_ALIGN_ABOVE)
+	    {
+		next_right_goes_below = FALSE;
+		++result;
+	    }
 	    else if (prop.tp_flags & TP_FLAG_ALIGN_RIGHT)
 		next_right_goes_below = TRUE;
 	}