Docking: Fixed a bug where ClassId compare tests (when using SetNextWindowClass) on success would prevent further filter from running. (#6882)

This commit is contained in:
ocornut 2023-10-02 10:56:50 +02:00
parent f8aed6499f
commit ff534b0d0a
2 changed files with 11 additions and 3 deletions

View File

@ -127,6 +127,12 @@ Docking+Viewports Branch:
- Docking: renamed ImGuiDockNodeFlags_NoDockingInCentralNode to ImGuiDockNodeFlags_NoDockingOverCentralNode.
- Docking: Internals: renamed ImGuiDockNodeFlags_NoDockingSplitMe to ImGuiDockNodeFlags_NoDockingSplit.
Docking+Viewports Branch:
- Docking: Fixed a bug where ClassId compare tests (when using SetNextWindowClass)
on success would prevent further filter from running, namely the one that prevent
docking over a popup.
-----------------------------------------------------------------------
VERSION 1.89.9 (Released 2023-09-04)

View File

@ -17059,11 +17059,13 @@ static bool DockNodeIsDropAllowedOne(ImGuiWindow* payload, ImGuiWindow* host_win
ImGuiWindowClass* payload_class = &payload->WindowClass;
if (host_class->ClassId != payload_class->ClassId)
{
bool pass = false;
if (host_class->ClassId != 0 && host_class->DockingAllowUnclassed && payload_class->ClassId == 0)
return true;
pass = true;
if (payload_class->ClassId != 0 && payload_class->DockingAllowUnclassed && host_class->ClassId == 0)
return true;
return false;
pass = true;
if (!pass)
return false;
}
// Prevent docking any window created above a popup