MultiSelect: Box-Select: handle Esc to disable box-select.

This avoid remove a one-frame delay when finishing box-select, where Esc wouldn't be routed to selection but to child.
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index e0e0d92..cc223e4 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -7377,20 +7377,6 @@
             request_clear = true;
     }
 
-    if (ms->IsFocused)
-    {
-        // Shortcut: Clear selection (Escape)
-        // Only claim shortcut if selection is not empty, allowing further presses on Escape to e.g. leave current child window.
-        if ((flags & ImGuiMultiSelectFlags_ClearOnEscape) && (selection_size != 0))
-            if (Shortcut(ImGuiKey_Escape))
-                request_clear = true;
-
-        // Shortcut: Select all (CTRL+A)
-        if (!(flags & ImGuiMultiSelectFlags_SingleSelect) && !(flags & ImGuiMultiSelectFlags_NoSelectAll))
-            if (Shortcut(ImGuiMod_Ctrl | ImGuiKey_A))
-                request_select_all = true;
-    }
-
     // Box-select handling: update active state.
     ImGuiBoxSelectState* bs = &g.BoxSelectState;
     if (flags & (ImGuiMultiSelectFlags_BoxSelect1d | ImGuiMultiSelectFlags_BoxSelect2d))
@@ -7401,6 +7387,28 @@
             request_clear |= bs->RequestClear;
     }
 
+    if (ms->IsFocused)
+    {
+        // Shortcut: Clear selection (Escape)
+        // - Only claim shortcut if selection is not empty, allowing further presses on Escape to e.g. leave current child window.
+        // - Box select also handle Escape and needs to pass an id to bypass ActiveIdUsingAllKeyboardKeys lock.
+        if (flags & ImGuiMultiSelectFlags_ClearOnEscape)
+        {
+            if (selection_size != 0 || bs->IsActive)
+                if (Shortcut(ImGuiKey_Escape, ImGuiInputFlags_None, bs->IsActive ? bs->ID : 0))
+                {
+                    request_clear = true;
+                    if (bs->IsActive)
+                        BoxSelectDeactivateDrag(bs);
+                }
+        }
+
+        // Shortcut: Select all (CTRL+A)
+        if (!(flags & ImGuiMultiSelectFlags_SingleSelect) && !(flags & ImGuiMultiSelectFlags_NoSelectAll))
+            if (Shortcut(ImGuiMod_Ctrl | ImGuiKey_A))
+                request_select_all = true;
+    }
+
     if (request_clear || request_select_all)
     {
         ImGuiSelectionRequest req = { ImGuiSelectionRequestType_SetAll, request_select_all, 0, ImGuiSelectionUserData_Invalid, ImGuiSelectionUserData_Invalid };