patch 9.0.0802: MS-Windows: cannot map console mouse scroll events

Problem:    MS-Windows: cannot map console mouse scroll events.
Solution:   Change CSI to K_SPECIAL when checking for a mapping. (Christopher
            Plewright, closes #11410)
diff --git a/src/getchar.c b/src/getchar.c
index bbc6d6e..3f83b84 100644
--- a/src/getchar.c
+++ b/src/getchar.c
@@ -2520,12 +2520,29 @@
 	    && State != MODE_CONFIRM
 	    && !at_ins_compl_key())
     {
-#ifdef FEAT_GUI
-	if (gui.in_use && tb_c1 == CSI && typebuf.tb_len >= 2
-		&& typebuf.tb_buf[typebuf.tb_off + 1] == KS_MODIFIER)
+#if defined(FEAT_GUI) || defined(MSWIN)
+	if (tb_c1 == CSI
+# if !defined(MSWIN)
+		&& gui.in_use
+# endif
+		&& typebuf.tb_len >= 2
+		&& (typebuf.tb_buf[typebuf.tb_off + 1] == KS_MODIFIER
+# if defined(MSWIN)
+		    || (typebuf.tb_len >= 3
+		      && typebuf.tb_buf[typebuf.tb_off + 1] == KS_EXTRA
+		      && (typebuf.tb_buf[typebuf.tb_off + 2] == KE_MOUSEUP
+			|| typebuf.tb_buf[typebuf.tb_off + 2] == KE_MOUSEDOWN
+			|| typebuf.tb_buf[typebuf.tb_off + 2] == KE_MOUSELEFT
+			|| typebuf.tb_buf[typebuf.tb_off + 2] == KE_MOUSERIGHT)
+		       )
+# endif
+		   )
+	   )
 	{
 	    // The GUI code sends CSI KS_MODIFIER {flags}, but mappings expect
 	    // K_SPECIAL KS_MODIFIER {flags}.
+	    // MS-Windows sends mouse scroll events CSI KS_EXTRA {what}, but
+	    // mappings expect K_SPECIAL KS_EXTRA {what}.
 	    tb_c1 = K_SPECIAL;
 	}
 #endif
@@ -2568,7 +2585,8 @@
 		    && (mp->m_mode & local_State)
 		    && !(mp->m_simplified && seenModifyOtherKeys
 						     && typebuf.tb_maplen == 0)
-		    && ((mp->m_mode & MODE_LANGMAP) == 0 || typebuf.tb_maplen == 0))
+		    && ((mp->m_mode & MODE_LANGMAP) == 0
+						    || typebuf.tb_maplen == 0))
 	    {
 #ifdef FEAT_LANGMAP
 		int	nomap = nolmaplen;
diff --git a/src/os_win32.c b/src/os_win32.c
index 03b3ac0..ca1799f 100644
--- a/src/os_win32.c
+++ b/src/os_win32.c
@@ -1265,7 +1265,7 @@
 #ifdef FEAT_PROP_POPUP
     int lcol = g_xMouse;
     int lrow = g_yMouse;
-    wp = mouse_find_win(&lrow, &lcol, FAIL_POPUP);
+    wp = mouse_find_win(&lrow, &lcol, FIND_POPUP);
     if (wp != NULL && popup_is_popup(wp))
     {
 	g_nMouseClick = -1;
diff --git a/src/version.c b/src/version.c
index 983fa0c..34ff382 100644
--- a/src/version.c
+++ b/src/version.c
@@ -696,6 +696,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    802,
+/**/
     801,
 /**/
     800,