changeset 5068:6a7ae677d6a1 v7.3.1277

updated for version 7.3.1277 Problem: In diff mode 'cursorline' also draws in the non-active window. When 'nu' and 'sbr' are set the 'sbr' string is not underlined. Solution: Only draw the cursor line in the current window. Combine the 'cursorline' and other highlighting attributes. (Christian Brabandt)
author Bram Moolenaar <bram@vim.org>
date Sun, 30 Jun 2013 17:24:16 +0200
parents e969e452d3d0
children 44f2eb39f49e
files src/screen.c src/version.c
diffstat 2 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/screen.c
+++ b/src/screen.c
@@ -3366,9 +3366,11 @@ win_line(wp, lnum, startrow, endrow, noc
 #endif
 
 #ifdef FEAT_SYN_HL
-    /* Cursor line highlighting for 'cursorline'.  Not when Visual mode is
-     * active, because it's not clear what is selected then. */
-    if (wp->w_p_cul && lnum == wp->w_cursor.lnum && !VIsual_active)
+    /* Cursor line highlighting for 'cursorline' in the current window.  Not
+     * when Visual mode is active, because it's not clear what is selected
+     * then. */
+    if (wp->w_p_cul && wp == curwin && lnum == wp->w_cursor.lnum
+							    && !VIsual_active)
     {
 	line_attr = hl_attr(HLF_CUL);
 	area_highlighting = TRUE;
@@ -3541,7 +3543,7 @@ win_line(wp, lnum, startrow, endrow, noc
 		     * the current line differently.
 		     * TODO: Can we use CursorLine instead of CursorLineNr
 		     * when CursorLineNr isn't set? */
-		    if ((wp->w_p_cul || wp->w_p_rnu)
+		    if (((wp->w_p_cul && wp == curwin) || wp->w_p_rnu)
 						 && lnum == wp->w_cursor.lnum)
 			char_attr = hl_attr(HLF_CLN);
 #endif
@@ -3582,6 +3584,12 @@ win_line(wp, lnum, startrow, endrow, noc
 		     * required when 'linebreak' is also set. */
 		    if (tocol == vcol)
 			tocol += n_extra;
+#ifdef FEAT_SYN_HL
+		    /* combine 'showbreak' with 'cursorline' */
+		    if (wp->w_p_cul && wp == curwin
+						 && lnum == wp->w_cursor.lnum)
+			char_attr = hl_combine_attr(char_attr, HLF_CLN);
+#endif
 		}
 # endif
 	    }
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1277,
+/**/
     1276,
 /**/
     1275,