message: Active Modal window always set the WantCaptureKeyboard flag
diff: @@ -2408,7 +2408,8 @@ void ImGui::NewFrame()
  g.HoveredWindow = (g.MovingWindow && !(g.MovingWindow->Flags & ImGuiWindowFlags_NoInputs)) ? g.MovingWindow : FindHoveredWindow(g.IO.MousePos);
  g.HoveredRootWindow = g.HoveredWindow ? g.HoveredWindow->RootWindow : NULL;
  - if (ImGuiWindow* modal_window = GetFrontMostModalRootWindow())
  + ImGuiWindow* modal_window = GetFrontMostModalRootWindow();
  + if (modal_window != NULL)
  {
  g.ModalWindowDarkeningRatio = ImMin(g.ModalWindowDarkeningRatio + g.IO.DeltaTime * 6.0f, 1.0f);
  if (g.HoveredRootWindow && !IsWindowChildOf(g.HoveredRootWindow, modal_window))
  @@ -2437,7 +2438,10 @@ void ImGui::NewFrame()
  g.IO.WantCaptureMouse = (g.WantCaptureMouseNextFrame != 0);
  else
  g.IO.WantCaptureMouse = (mouse_avail_to_imgui && (g.HoveredWindow != NULL || mouse_any_down)) || (!g.OpenPopupStack.empty());
  - g.IO.WantCaptureKeyboard = (g.WantCaptureKeyboardNextFrame != -1) ? (g.WantCaptureKeyboardNextFrame != 0) : (g.ActiveId != 0);
  + if (g.WantCaptureKeyboardNextFrame != -1)
  + g.IO.WantCaptureKeyboard = (g.WantCaptureKeyboardNextFrame != 0);
  + else
  + g.IO.WantCaptureKeyboard = (g.ActiveId != 0) || (modal_window != NULL);
  g.IO.WantTextInput = (g.WantTextInputNextFrame != -1) ? (g.WantTextInputNextFrame != 0) : 0;
  g.MouseCursor = ImGuiMouseCursor_Arrow;
  g.WantCaptureMouseNextFrame = g.WantCaptureKeyboardNextFrame = g.WantTextInputNextFrame = -1;
  