mirror of
https://github.com/Drezil/imgui.git
synced 2024-12-26 01:26:35 +00:00
Viewports: Fixed a CTRL+TAB crash with viewports enabled (#4023, #787) (amend 1dc3af3
, 23ef6c1
, 657073a
)
+ Expose FindHoveredViewportFromPlatformWindowStack() in imgui_internal.h
This commit is contained in:
parent
2aa9959553
commit
9c8f288d1a
@ -108,6 +108,11 @@ Other changes:
|
||||
- Backends: Metal: Added Apple Metal C++ API support. (#4824, #4746) [@luigifcruz]
|
||||
Enable with '#define IMGUI_IMPL_METAL_CPP' in your imconfig.h file.
|
||||
|
||||
Docking+Viewports Branch:
|
||||
|
||||
- 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)
|
||||
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
VERSION 1.86 (Released 2021-12-22)
|
||||
|
@ -4700,7 +4700,7 @@ static void ImGui::RenderDimmedBackgrounds()
|
||||
{
|
||||
// Draw dimming behind CTRL+Tab target window and behind CTRL+Tab UI window
|
||||
RenderDimmedBackgroundBehindWindow(g.NavWindowingTargetAnim, GetColorU32(ImGuiCol_NavWindowingDimBg, g.DimBgRatio));
|
||||
if (g.NavWindowingListWindow != NULL && g.NavWindowingListWindow->Viewport != g.NavWindowingTargetAnim->Viewport)
|
||||
if (g.NavWindowingListWindow != NULL && g.NavWindowingListWindow->Viewport && g.NavWindowingListWindow->Viewport != g.NavWindowingTargetAnim->Viewport)
|
||||
RenderDimmedBackgroundBehindWindow(g.NavWindowingListWindow, GetColorU32(ImGuiCol_NavWindowingDimBg, g.DimBgRatio));
|
||||
viewports_already_dimmed[0] = g.NavWindowingTargetAnim->Viewport;
|
||||
viewports_already_dimmed[1] = g.NavWindowingListWindow ? g.NavWindowingListWindow->Viewport : NULL;
|
||||
@ -12143,7 +12143,7 @@ void ImGui::ScaleWindowsInViewport(ImGuiViewportP* viewport, float scale)
|
||||
// If the backend doesn't set MouseLastHoveredViewport or doesn't honor ImGuiViewportFlags_NoInputs, we do a search ourselves.
|
||||
// A) It won't take account of the possibility that non-imgui windows may be in-between our dragged window and our target window.
|
||||
// B) It requires Platform_GetWindowFocus to be implemented by backend.
|
||||
static ImGuiViewportP* FindHoveredViewportFromPlatformWindowStack(const ImVec2 mouse_platform_pos)
|
||||
ImGuiViewportP* ImGui::FindHoveredViewportFromPlatformWindowStack(const ImVec2& mouse_platform_pos)
|
||||
{
|
||||
ImGuiContext& g = *GImGui;
|
||||
ImGuiViewportP* best_candidate = NULL;
|
||||
|
@ -2695,6 +2695,7 @@ namespace ImGui
|
||||
IMGUI_API void DestroyPlatformWindow(ImGuiViewportP* viewport);
|
||||
IMGUI_API void SetCurrentViewport(ImGuiWindow* window, ImGuiViewportP* viewport);
|
||||
IMGUI_API const ImGuiPlatformMonitor* GetViewportPlatformMonitor(ImGuiViewport* viewport);
|
||||
IMGUI_API ImGuiViewportP* FindHoveredViewportFromPlatformWindowStack(const ImVec2& mouse_platform_pos);
|
||||
|
||||
// Settings
|
||||
IMGUI_API void MarkIniSettingsDirty();
|
||||
|
Loading…
Reference in New Issue
Block a user