mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Internal: using more consistent comparaison with HiddenFrames to not imply it could be -1. Tweaked comments.
This commit is contained in:
		
							
								
								
									
										16
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -3245,7 +3245,7 @@ static void ImGui::NavUpdate() | |||||||
|     g.NavScoringCount = 0; |     g.NavScoringCount = 0; | ||||||
| #if IMGUI_DEBUG_NAV_RECTS | #if IMGUI_DEBUG_NAV_RECTS | ||||||
|     if (g.NavWindow) { for (int layer = 0; layer < 2; layer++) g.OverlayDrawList.AddRect(g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Min, g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Max, IM_COL32(255,200,0,255)); } // [DEBUG]  |     if (g.NavWindow) { for (int layer = 0; layer < 2; layer++) g.OverlayDrawList.AddRect(g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Min, g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Max, IM_COL32(255,200,0,255)); } // [DEBUG]  | ||||||
|     if (g.NavWindow) { ImU32 col = (g.NavWindow->HiddenFrames <= 0) ? IM_COL32(255,0,255,255) : IM_COL32(255,0,0,255); ImVec2 p = NavCalcPreferredMousePos(); char buf[32]; ImFormatString(buf, 32, "%d", g.NavLayer); g.OverlayDrawList.AddCircleFilled(p, 3.0f, col); g.OverlayDrawList.AddText(NULL, 13.0f, p + ImVec2(8,-4), col, buf); } |     if (g.NavWindow) { ImU32 col = (g.NavWindow->HiddenFrames == 0) ? IM_COL32(255,0,255,255) : IM_COL32(255,0,0,255); ImVec2 p = NavCalcPreferredMousePos(); char buf[32]; ImFormatString(buf, 32, "%d", g.NavLayer); g.OverlayDrawList.AddCircleFilled(p, 3.0f, col); g.OverlayDrawList.AddText(NULL, 13.0f, p + ImVec2(8,-4), col, buf); } | ||||||
| #endif | #endif | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -3902,7 +3902,7 @@ static void AddWindowToDrawData(ImVector<ImDrawList*>* out_render_list, ImGuiWin | |||||||
|     for (int i = 0; i < window->DC.ChildWindows.Size; i++) |     for (int i = 0; i < window->DC.ChildWindows.Size; i++) | ||||||
|     { |     { | ||||||
|         ImGuiWindow* child = window->DC.ChildWindows[i]; |         ImGuiWindow* child = window->DC.ChildWindows[i]; | ||||||
|         if (child->Active && child->HiddenFrames <= 0) // clipped children may have been marked not active |         if (child->Active && child->HiddenFrames == 0) // clipped children may have been marked not active | ||||||
|             AddWindowToDrawData(out_render_list, child); |             AddWindowToDrawData(out_render_list, child); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @@ -4070,10 +4070,10 @@ void ImGui::Render() | |||||||
|     for (int n = 0; n != g.Windows.Size; n++) |     for (int n = 0; n != g.Windows.Size; n++) | ||||||
|     { |     { | ||||||
|         ImGuiWindow* window = g.Windows[n]; |         ImGuiWindow* window = g.Windows[n]; | ||||||
|         if (window->Active && window->HiddenFrames <= 0 && (window->Flags & ImGuiWindowFlags_ChildWindow) == 0 && window != window_to_render_front_most) |         if (window->Active && window->HiddenFrames == 0 && (window->Flags & ImGuiWindowFlags_ChildWindow) == 0 && window != window_to_render_front_most) | ||||||
|             AddWindowToDrawDataSelectLayer(window); |             AddWindowToDrawDataSelectLayer(window); | ||||||
|     } |     } | ||||||
|     if (window_to_render_front_most && window_to_render_front_most->Active && window_to_render_front_most->HiddenFrames <= 0) // NavWindowingTarget is always temporarily displayed as the front-most window |     if (window_to_render_front_most && window_to_render_front_most->Active && window_to_render_front_most->HiddenFrames == 0) // NavWindowingTarget is always temporarily displayed as the front-most window | ||||||
|         AddWindowToDrawDataSelectLayer(window_to_render_front_most); |         AddWindowToDrawDataSelectLayer(window_to_render_front_most); | ||||||
|     g.DrawDataBuilder.FlattenIntoSingleLayer(); |     g.DrawDataBuilder.FlattenIntoSingleLayer(); | ||||||
|  |  | ||||||
| @@ -4773,7 +4773,7 @@ void ImGui::BeginTooltipEx(ImGuiWindowFlags extra_flags, bool override_previous_ | |||||||
|         if (ImGuiWindow* window = FindWindowByName(window_name)) |         if (ImGuiWindow* window = FindWindowByName(window_name)) | ||||||
|             if (window->Active) |             if (window->Active) | ||||||
|             { |             { | ||||||
|                 // Hide previous tooltips. We can't easily "reset" the content of a window so we create a new one. |                 // Hide previous tooltip from being displayed. We can't easily "reset" the content of a window so we create a new one. | ||||||
|                 window->HiddenFrames = 1; |                 window->HiddenFrames = 1; | ||||||
|                 ImFormatString(window_name, IM_ARRAYSIZE(window_name), "##Tooltip_%02d", ++g.TooltipOverrideCount); |                 ImFormatString(window_name, IM_ARRAYSIZE(window_name), "##Tooltip_%02d", ++g.TooltipOverrideCount); | ||||||
|             } |             } | ||||||
| @@ -5619,7 +5619,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | |||||||
|  |  | ||||||
|     // Update the Appearing flag |     // Update the Appearing flag | ||||||
|     bool window_just_activated_by_user = (window->LastFrameActive < current_frame - 1);   // Not using !WasActive because the implicit "Debug" window would always toggle off->on |     bool window_just_activated_by_user = (window->LastFrameActive < current_frame - 1);   // Not using !WasActive because the implicit "Debug" window would always toggle off->on | ||||||
|     const bool window_just_appearing_after_hidden_for_resize = (window->HiddenFrames == 1); |     const bool window_just_appearing_after_hidden_for_resize = (window->HiddenFrames > 0); | ||||||
|     if (flags & ImGuiWindowFlags_Popup) |     if (flags & ImGuiWindowFlags_Popup) | ||||||
|     { |     { | ||||||
|         ImGuiPopupRef& popup_ref = g.OpenPopupStack[g.CurrentPopupStack.Size]; |         ImGuiPopupRef& popup_ref = g.OpenPopupStack[g.CurrentPopupStack.Size]; | ||||||
| @@ -5775,7 +5775,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | |||||||
|         // Calculate auto-fit size, handle automatic resize |         // Calculate auto-fit size, handle automatic resize | ||||||
|         const ImVec2 size_auto_fit = CalcSizeAutoFit(window, window->SizeContents); |         const ImVec2 size_auto_fit = CalcSizeAutoFit(window, window->SizeContents); | ||||||
|         ImVec2 size_full_modified(FLT_MAX, FLT_MAX); |         ImVec2 size_full_modified(FLT_MAX, FLT_MAX); | ||||||
|         if (flags & ImGuiWindowFlags_AlwaysAutoResize && !window->Collapsed) |         if ((flags & ImGuiWindowFlags_AlwaysAutoResize) && !window->Collapsed) | ||||||
|         { |         { | ||||||
|             // Using SetNextWindowSize() overrides ImGuiWindowFlags_AlwaysAutoResize, so it can be used on tooltips/popups, etc. |             // Using SetNextWindowSize() overrides ImGuiWindowFlags_AlwaysAutoResize, so it can be used on tooltips/popups, etc. | ||||||
|             if (!window_size_x_set_by_api) |             if (!window_size_x_set_by_api) | ||||||
| @@ -5785,7 +5785,7 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | |||||||
|         } |         } | ||||||
|         else if (window->AutoFitFramesX > 0 || window->AutoFitFramesY > 0) |         else if (window->AutoFitFramesX > 0 || window->AutoFitFramesY > 0) | ||||||
|         { |         { | ||||||
|             // Auto-fit only grows during the first few frames |             // Auto-fit may only grow window during the first few frames | ||||||
|             // We still process initial auto-fit on collapsed windows to get a window width, but otherwise don't honor ImGuiWindowFlags_AlwaysAutoResize when collapsed. |             // We still process initial auto-fit on collapsed windows to get a window width, but otherwise don't honor ImGuiWindowFlags_AlwaysAutoResize when collapsed. | ||||||
|             if (!window_size_x_set_by_api && window->AutoFitFramesX > 0) |             if (!window_size_x_set_by_api && window->AutoFitFramesX > 0) | ||||||
|                 window->SizeFull.x = size_full_modified.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; |                 window->SizeFull.x = size_full_modified.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user