|
@@ -3912,13 +3912,15 @@ static void ImGui::UpdateViewports()
|
|
}
|
|
}
|
|
if (viewport_hovered != NULL)
|
|
if (viewport_hovered != NULL)
|
|
g.MouseLastHoveredViewport = viewport_hovered;
|
|
g.MouseLastHoveredViewport = viewport_hovered;
|
|
|
|
+ else if (g.MouseLastHoveredViewport == NULL)
|
|
|
|
+ g.MouseLastHoveredViewport = g.Viewports[0];
|
|
|
|
|
|
// Update mouse reference viewport
|
|
// Update mouse reference viewport
|
|
// (when moving a window we aim at its viewport, but this will be overwritten below if we go in drag and drop mode)
|
|
// (when moving a window we aim at its viewport, but this will be overwritten below if we go in drag and drop mode)
|
|
if (g.MovingWindow)
|
|
if (g.MovingWindow)
|
|
g.MouseViewport = g.MovingWindow->Viewport;
|
|
g.MouseViewport = g.MovingWindow->Viewport;
|
|
else
|
|
else
|
|
- g.MouseViewport = g.IO.MousePosViewport ? FindViewportByID(g.IO.MousePosViewport) : g.Viewports[0];
|
|
|
|
|
|
+ g.MouseViewport = g.MouseLastHoveredViewport;
|
|
|
|
|
|
// When dragging something, always refer to the last hovered viewport.
|
|
// When dragging something, always refer to the last hovered viewport.
|
|
// - when releasing a moving window we will revert to aiming behind (at viewport_hovered)
|
|
// - when releasing a moving window we will revert to aiming behind (at viewport_hovered)
|
|
@@ -15165,7 +15167,7 @@ void ImGui::ShowMetricsWindow(bool* p_open)
|
|
ImGui::Text("NavDisableHighlight: %d, NavDisableMouseHover: %d", g.NavDisableHighlight, g.NavDisableMouseHover);
|
|
ImGui::Text("NavDisableHighlight: %d, NavDisableMouseHover: %d", g.NavDisableHighlight, g.NavDisableMouseHover);
|
|
ImGui::Text("NavWindowingTarget: '%s'", g.NavWindowingTarget ? g.NavWindowingTarget->Name : "NULL");
|
|
ImGui::Text("NavWindowingTarget: '%s'", g.NavWindowingTarget ? g.NavWindowingTarget->Name : "NULL");
|
|
ImGui::Text("DragDrop: %d, SourceId = 0x%08X, Payload \"%s\" (%d bytes)", g.DragDropActive, g.DragDropPayload.SourceId, g.DragDropPayload.DataType, g.DragDropPayload.DataSize);
|
|
ImGui::Text("DragDrop: %d, SourceId = 0x%08X, Payload \"%s\" (%d bytes)", g.DragDropActive, g.DragDropPayload.SourceId, g.DragDropPayload.DataType, g.DragDropPayload.DataSize);
|
|
- ImGui::Text("MousePosViewport: 0x%08X, Hovered: 0x%08X -> Ref 0x%08X", g.IO.MousePosViewport, g.IO.MouseHoveredViewport, g.MouseViewport->ID);
|
|
|
|
|
|
+ ImGui::Text("MouseViewport: 0x%08X (UserHovered 0x%08X, LastHovered 0x%08X)", g.MouseViewport->ID, g.IO.MouseHoveredViewport, g.MouseLastHoveredViewport->ID);
|
|
ImGui::TreePop();
|
|
ImGui::TreePop();
|
|
}
|
|
}
|
|
|
|
|