mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Internals: Renamed GetFrontMostPopupModal() to GetTopMostPopupModal() to be consistent. Renamed other locals to follow that terminology.
This commit is contained in:
		
							
								
								
									
										36
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -3298,7 +3298,7 @@ void ImGui::UpdateMouseMovingWindowEndFrame() | ||||
|                 if (!g.HoveredRootWindow->TitleBarRect().Contains(g.IO.MouseClickedPos[0])) | ||||
|                     g.MovingWindow = NULL; | ||||
|         } | ||||
|         else if (g.NavWindow != NULL && GetFrontMostPopupModal() == NULL) | ||||
|         else if (g.NavWindow != NULL && GetTopMostPopupModal() == NULL) | ||||
|         { | ||||
|             // Clicking on void disable focus | ||||
|             FocusWindow(NULL); | ||||
| @@ -3310,9 +3310,9 @@ void ImGui::UpdateMouseMovingWindowEndFrame() | ||||
|     // (The left mouse button path calls FocusWindow on the hovered window, which will lead NewFrame->ClosePopupsOverWindow to trigger) | ||||
|     if (g.IO.MouseClicked[1]) | ||||
|     { | ||||
|         // Find the top-most window between HoveredWindow and the front most Modal Window. | ||||
|         // Find the top-most window between HoveredWindow and the top-most Modal Window. | ||||
|         // This is where we can trim the popup stack. | ||||
|         ImGuiWindow* modal = GetFrontMostPopupModal(); | ||||
|         ImGuiWindow* modal = GetTopMostPopupModal(); | ||||
|         bool hovered_window_above_modal = false; | ||||
|         if (modal == NULL) | ||||
|             hovered_window_above_modal = true; | ||||
| @@ -3458,7 +3458,7 @@ void ImGui::UpdateHoveredWindowAndCaptureFlags() | ||||
|     FindHoveredWindow(); | ||||
|  | ||||
|     // Modal windows prevents cursor from hovering behind them. | ||||
|     ImGuiWindow* modal_window = GetFrontMostPopupModal(); | ||||
|     ImGuiWindow* modal_window = GetTopMostPopupModal(); | ||||
|     if (modal_window) | ||||
|         if (g.HoveredRootWindow && !IsWindowChildOf(g.HoveredRootWindow, modal_window)) | ||||
|             g.HoveredRootWindow = g.HoveredWindow = NULL; | ||||
| @@ -3654,7 +3654,7 @@ void ImGui::NewFrame() | ||||
|     UpdateMouseMovingWindowNewFrame(); | ||||
|  | ||||
|     // Background darkening/whitening | ||||
|     if (GetFrontMostPopupModal() != NULL || (g.NavWindowingTarget != NULL && g.NavWindowingHighlightAlpha > 0.0f)) | ||||
|     if (GetTopMostPopupModal() != NULL || (g.NavWindowingTarget != NULL && g.NavWindowingHighlightAlpha > 0.0f)) | ||||
|         g.DimBgRatio = ImMin(g.DimBgRatio + g.IO.DeltaTime * 6.0f, 1.0f); | ||||
|     else | ||||
|         g.DimBgRatio = ImMax(g.DimBgRatio - g.IO.DeltaTime * 10.0f, 0.0f); | ||||
| @@ -4062,18 +4062,18 @@ void ImGui::Render() | ||||
|     if (!g.BackgroundDrawList.VtxBuffer.empty()) | ||||
|         AddDrawListToDrawData(&g.DrawDataBuilder.Layers[0], &g.BackgroundDrawList); | ||||
|  | ||||
|     ImGuiWindow* windows_to_render_front_most[2]; | ||||
|     windows_to_render_front_most[0] = (g.NavWindowingTarget && !(g.NavWindowingTarget->Flags & ImGuiWindowFlags_NoBringToFrontOnFocus)) ? g.NavWindowingTarget->RootWindow : NULL; | ||||
|     windows_to_render_front_most[1] = g.NavWindowingTarget ? g.NavWindowingList : NULL; | ||||
|     ImGuiWindow* windows_to_render_top_most[2]; | ||||
|     windows_to_render_top_most[0] = (g.NavWindowingTarget && !(g.NavWindowingTarget->Flags & ImGuiWindowFlags_NoBringToFrontOnFocus)) ? g.NavWindowingTarget->RootWindow : NULL; | ||||
|     windows_to_render_top_most[1] = g.NavWindowingTarget ? g.NavWindowingList : NULL; | ||||
|     for (int n = 0; n != g.Windows.Size; n++) | ||||
|     { | ||||
|         ImGuiWindow* window = g.Windows[n]; | ||||
|         if (IsWindowActiveAndVisible(window) && (window->Flags & ImGuiWindowFlags_ChildWindow) == 0 && window != windows_to_render_front_most[0] && window != windows_to_render_front_most[1]) | ||||
|         if (IsWindowActiveAndVisible(window) && (window->Flags & ImGuiWindowFlags_ChildWindow) == 0 && window != windows_to_render_top_most[0] && window != windows_to_render_top_most[1]) | ||||
|             AddRootWindowToDrawData(window); | ||||
|     } | ||||
|     for (int n = 0; n < IM_ARRAYSIZE(windows_to_render_front_most); n++) | ||||
|         if (windows_to_render_front_most[n] && IsWindowActiveAndVisible(windows_to_render_front_most[n])) // NavWindowingTarget is always temporarily displayed as the front-most window | ||||
|             AddRootWindowToDrawData(windows_to_render_front_most[n]); | ||||
|     for (int n = 0; n < IM_ARRAYSIZE(windows_to_render_top_most); n++) | ||||
|         if (windows_to_render_top_most[n] && IsWindowActiveAndVisible(windows_to_render_top_most[n])) // NavWindowingTarget is always temporarily displayed as the top-most window | ||||
|             AddRootWindowToDrawData(windows_to_render_top_most[n]); | ||||
|     g.DrawDataBuilder.FlattenIntoSingleLayer(); | ||||
|  | ||||
|     // Draw software mouse cursor if requested | ||||
| @@ -5648,7 +5648,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|         PushClipRect(host_rect.Min, host_rect.Max, false); | ||||
|  | ||||
|         // Draw modal window background (darkens what is behind them, all viewports) | ||||
|         const bool dim_bg_for_modal = (flags & ImGuiWindowFlags_Modal) && window == GetFrontMostPopupModal() && window->HiddenFramesCannotSkipItems <= 0; | ||||
|         const bool dim_bg_for_modal = (flags & ImGuiWindowFlags_Modal) && window == GetTopMostPopupModal() && window->HiddenFramesCannotSkipItems <= 0; | ||||
|         const bool dim_bg_for_window_list = g.NavWindowingTargetAnim && (window == g.NavWindowingTargetAnim->RootWindow); | ||||
|         if (dim_bg_for_modal || dim_bg_for_window_list) | ||||
|         { | ||||
| @@ -5893,7 +5893,7 @@ void ImGui::BringWindowToFocusFront(ImGuiWindow* window) | ||||
|     ImGuiContext& g = *GImGui; | ||||
|     if (g.WindowsFocusOrder.back() == window) | ||||
|         return; | ||||
|     for (int i = g.WindowsFocusOrder.Size - 2; i >= 0; i--) // We can ignore the front most window | ||||
|     for (int i = g.WindowsFocusOrder.Size - 2; i >= 0; i--) // We can ignore the top-most window | ||||
|         if (g.WindowsFocusOrder[i] == window) | ||||
|         { | ||||
|             memmove(&g.WindowsFocusOrder[i], &g.WindowsFocusOrder[i + 1], (size_t)(g.WindowsFocusOrder.Size - i - 1) * sizeof(ImGuiWindow*)); | ||||
| @@ -5908,7 +5908,7 @@ void ImGui::BringWindowToDisplayFront(ImGuiWindow* window) | ||||
|     ImGuiWindow* current_front_window = g.Windows.back(); | ||||
|     if (current_front_window == window || current_front_window->RootWindow == window) | ||||
|         return; | ||||
|     for (int i = g.Windows.Size - 2; i >= 0; i--) // We can ignore the front most window | ||||
|     for (int i = g.Windows.Size - 2; i >= 0; i--) // We can ignore the top-most window | ||||
|         if (g.Windows[i] == window) | ||||
|         { | ||||
|             memmove(&g.Windows[i], &g.Windows[i + 1], (size_t)(g.Windows.Size - i - 1) * sizeof(ImGuiWindow*)); | ||||
| @@ -7178,7 +7178,7 @@ bool ImGui::IsPopupOpen(const char* str_id) | ||||
|     return g.OpenPopupStack.Size > g.BeginPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].PopupId == g.CurrentWindow->GetID(str_id); | ||||
| } | ||||
|  | ||||
| ImGuiWindow* ImGui::GetFrontMostPopupModal() | ||||
| ImGuiWindow* ImGui::GetTopMostPopupModal() | ||||
| { | ||||
|     ImGuiContext& g = *GImGui; | ||||
|     for (int n = g.OpenPopupStack.Size-1; n >= 0; n--) | ||||
| @@ -8435,7 +8435,7 @@ static void ImGui::NavUpdateWindowing() | ||||
|     ImGuiWindow* apply_focus_window = NULL; | ||||
|     bool apply_toggle_layer = false; | ||||
|  | ||||
|     ImGuiWindow* modal_window = GetFrontMostPopupModal(); | ||||
|     ImGuiWindow* modal_window = GetTopMostPopupModal(); | ||||
|     if (modal_window != NULL) | ||||
|     { | ||||
|         g.NavWindowingTarget = NULL; | ||||
| @@ -8477,7 +8477,7 @@ static void ImGui::NavUpdateWindowing() | ||||
|             g.NavWindowingHighlightAlpha = 1.0f; | ||||
|         } | ||||
|  | ||||
|         // Single press toggles NavLayer, long press with L/R apply actual focus on release (until then the window was merely rendered front-most) | ||||
|         // Single press toggles NavLayer, long press with L/R apply actual focus on release (until then the window was merely rendered top-most) | ||||
|         if (!IsNavInputDown(ImGuiNavInput_Menu)) | ||||
|         { | ||||
|             g.NavWindowingToggleLayer &= (g.NavWindowingHighlightAlpha < 1.0f); // Once button was held long enough we don't consider it a tap-to-toggle-layer press anymore. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user