patch 8.1.2214: too much is redrawn when 'cursorline' is set

Problem:    Too much is redrawn when 'cursorline' is set.
Solution:   Don't do a complete redraw. (closes #5079)
diff --git a/src/change.c b/src/change.c
index da6a72b..f254281 100644
--- a/src/change.c
+++ b/src/change.c
@@ -609,16 +609,21 @@
 	    if (hasAnyFolding(wp))
 		set_topline(wp, wp->w_topline);
 #endif
-	    // Relative numbering may require updating more.  Cursor line
-	    // highlighting probably needs to be updated if it's below the
-	    // change (or is using screenline highlighting)
-	    if (wp->w_p_rnu
-#ifdef FEAT_SYN_HL
-		    || ((wp->w_p_cul && lnum <= wp->w_last_cursorline)
-			    || (wp->w_p_culopt_flags & CULOPT_SCRLINE))
-#endif
-		    )
+	    // Relative numbering may require updating more.
+	    if (wp->w_p_rnu)
 		redraw_win_later(wp, SOME_VALID);
+#ifdef FEAT_SYN_HL
+	    // Cursor line highlighting probably need to be updated with
+	    // "VALID" if it's below the change.
+	    // If the cursor line is inside the change we need to redraw more.
+	    if (wp->w_p_cul)
+	    {
+		if (xtra == 0)
+		    redraw_win_later(wp, VALID);
+		else if (lnum <= wp->w_last_cursorline)
+		    redraw_win_later(wp, SOME_VALID);
+	    }
+#endif
 	}
     }