patch 8.2.2352: if focus lost/gained is received twice code is not ignored

Problem:    If the focus lost/gained escape sequence is received twice it is
            not ignored. (Christ van Willigen)
Solution:   Adjust the logic to ignore the escape code.
diff --git a/src/term.c b/src/term.c
index d3d0581..b17bc39 100644
--- a/src/term.c
+++ b/src/term.c
@@ -5708,18 +5708,24 @@
 		&& key_name[0] == KS_EXTRA
 	    )
 	{
-	    if (key_name[1] == KE_FOCUSGAINED && !focus_state)
+	    if (key_name[1] == KE_FOCUSGAINED)
 	    {
-		ui_focus_change(TRUE);
-		did_cursorhold = TRUE;
-		focus_state = TRUE;
+		if (!focus_state)
+		{
+		    ui_focus_change(TRUE);
+		    did_cursorhold = TRUE;
+		    focus_state = TRUE;
+		}
 		key_name[1] = (int)KE_IGNORE;
 	    }
-	    else if (key_name[1] == KE_FOCUSLOST && focus_state)
+	    else if (key_name[1] == KE_FOCUSLOST)
 	    {
-		ui_focus_change(FALSE);
-		did_cursorhold = TRUE;
-		focus_state = FALSE;
+		if (focus_state)
+		{
+		    ui_focus_change(FALSE);
+		    did_cursorhold = TRUE;
+		    focus_state = FALSE;
+		}
 		key_name[1] = (int)KE_IGNORE;
 	    }
 	}
diff --git a/src/version.c b/src/version.c
index b2de011..acca7aa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2352,
+/**/
     2351,
 /**/
     2350,