patch 8.1.2363: ml_get error when accessing Visual area in 'statusline'

Problem:    ml_get error when accessing Visual area in 'statusline'.
Solution:   Disable Visual mode when using another window. (closes #5278)
diff --git a/src/buffer.c b/src/buffer.c
index cba84c6..3b50c89 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -3979,6 +3979,7 @@
 #ifdef FEAT_EVAL
     win_T	*save_curwin;
     buf_T	*save_curbuf;
+    int		save_VIsual_active;
 #endif
     int		empty_line;
     colnr_T	virtcol;
@@ -4368,13 +4369,18 @@
 
 	    save_curbuf = curbuf;
 	    save_curwin = curwin;
+	    save_VIsual_active = VIsual_active;
 	    curwin = wp;
 	    curbuf = wp->w_buffer;
+	    // Visual mode is only valid in the current window.
+	    if (curwin != save_curwin)
+		VIsual_active = FALSE;
 
 	    str = eval_to_string_safe(p, &t, use_sandbox);
 
 	    curwin = save_curwin;
 	    curbuf = save_curbuf;
+	    VIsual_active = save_VIsual_active;
 	    do_unlet((char_u *)"g:actual_curbuf", TRUE);
 	    do_unlet((char_u *)"g:actual_curwin", TRUE);