Docking: Fixed a CTRL+TAB crash when aiming at an empty docked window. (#4792)

This commit is contained in:
ocornut 2022-01-25 17:28:43 +01:00
parent 3e0d6ec895
commit f1a073186c
2 changed files with 3 additions and 0 deletions

View File

@ -232,6 +232,7 @@ Docking+Viewports Branch:
io.AddMouseViewportEvent() function, then Dear ImGui will revert to its flawed heuristic to find the viewport under. io.AddMouseViewportEvent() function, then Dear ImGui will revert to its flawed heuristic to find the viewport under.
By lowering those specs, we allow the SDL and more backend to support this, only relying on the heuristic in a few By lowering those specs, we allow the SDL and more backend to support this, only relying on the heuristic in a few
drag and drop situations rather that relying on it everywhere. drag and drop situations rather that relying on it everywhere.
- Docking: Fixed a CTRL+TAB crash when aiming at an empty docked window. (#4792)
- Viewports: Fixed a CTRL+TAB crash with viewports enabled when the window list needs to appears in - Viewports: Fixed a CTRL+TAB crash with viewports enabled when the window list needs to appears in
its own viewport (regression from 1.86). (#4023, #787) its own viewport (regression from 1.86). (#4023, #787)
- Viewports: Fixed active InputText() from preventing viewports to merge. (#4212) - Viewports: Fixed active InputText() from preventing viewports to merge. (#4212)

View File

@ -4892,6 +4892,8 @@ static void ImGui::RenderDimmedBackgroundBehindWindow(ImGuiWindow* window, ImU32
if (window->RootWindow->DockIsActive) if (window->RootWindow->DockIsActive)
{ {
ImDrawList* draw_list = FindFrontMostVisibleChildWindow(window->RootWindowDockTree)->DrawList; ImDrawList* draw_list = FindFrontMostVisibleChildWindow(window->RootWindowDockTree)->DrawList;
if (draw_list->CmdBuffer.Size == 0)
draw_list->AddDrawCmd();
draw_list->PushClipRect(viewport_rect.Min, viewport_rect.Max, false); draw_list->PushClipRect(viewport_rect.Min, viewport_rect.Max, false);
RenderRectFilledWithHole(draw_list, window->RootWindowDockTree->Rect(), window->RootWindow->Rect(), col, 0.0f);// window->RootWindowDockTree->WindowRounding); RenderRectFilledWithHole(draw_list, window->RootWindowDockTree->Rect(), window->RootWindow->Rect(), col, 0.0f);// window->RootWindowDockTree->WindowRounding);
draw_list->PopClipRect(); draw_list->PopClipRect();