patch 8.2.0397: delayed screen update when using undo from Insert mode

Problem:    Delayed screen update when using undo from Insert mode.
Solution:   Update w_topline and cursor shape before sleeping. (closes #5790)
diff --git a/src/normal.c b/src/normal.c
index df2cf53..8ec98e5 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1154,7 +1154,9 @@
 
 	    kmsg = keep_msg;
 	    keep_msg = NULL;
-	    // showmode() will clear keep_msg, but we want to use it anyway
+	    // Showmode() will clear keep_msg, but we want to use it anyway.
+	    // First update w_topline.
+	    setcursor();
 	    update_screen(0);
 	    // now reset it, otherwise it's put in the history again
 	    keep_msg = kmsg;
@@ -1167,6 +1169,9 @@
 	    }
 	}
 	setcursor();
+#ifdef CURSOR_SHAPE
+	ui_cursor_shape();		// may show different cursor shape
+#endif
 	cursor_on();
 	out_flush();
 	if (msg_scroll || emsg_on_display)
@@ -1280,7 +1285,7 @@
 #endif
 
 /*
- * Check if  highlighting for visual mode is possible, give a warning message
+ * Check if highlighting for Visual mode is possible, give a warning message
  * if not.
  */
     void
diff --git a/src/version.c b/src/version.c
index 51ffb8c..f44ac2f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -739,6 +739,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    397,
+/**/
     396,
 /**/
     395,