mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Nav: window that are filling the entire display/viewport gets their windowing highlight clamped within. (#787)
This commit is contained in:
		
							
								
								
									
										16
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								imgui.cpp
									
									
									
									
									
								
							| @@ -5760,13 +5760,13 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|         if ((flags & ImGuiWindowFlags_Modal) != 0 && window == GetFrontMostModalRootWindow()) | ||||
|             window->DrawList->AddRectFilled(fullscreen_rect.Min, fullscreen_rect.Max, GetColorU32(ImGuiCol_ModalWindowDarkening, g.ModalWindowDarkeningRatio)); | ||||
|  | ||||
|         // Draw navigation windowing rectangle (via ImGuiKey_NavWindowing key), shows whole window selected | ||||
|         // Draw navigation selection/windowing rectangle background | ||||
|         if (g.NavWindowingTarget == window) | ||||
|         { | ||||
|             ImRect bb = window->Rect(); | ||||
|             bb.Expand(g.FontSize); | ||||
|             window->DrawList->AddRectFilled(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha * 0.25f), g.Style.WindowRounding); | ||||
|             window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha), g.Style.WindowRounding, ~0, 3.0f); | ||||
|             if (!bb.Contains(viewport_rect)) // Avoid drawing if the window covers all the viewport anyway | ||||
|                 window->DrawList->AddRectFilled(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha * 0.25f), g.Style.WindowRounding); | ||||
|         } | ||||
|  | ||||
|         // Draw window + handle manual resize | ||||
| @@ -5839,6 +5839,16 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) | ||||
|                 window->DrawList->AddLine(title_bar_rect.GetBL() + ImVec2(style.WindowBorderSize, -1), title_bar_rect.GetBR() + ImVec2(-style.WindowBorderSize,-1), GetColorU32(ImGuiCol_Border), style.FrameBorderSize); | ||||
|         } | ||||
|  | ||||
|         // Draw navigation selection/windowing rectangle border | ||||
|         if (g.NavWindowingTarget == window) | ||||
|         { | ||||
|             ImRect bb = window->Rect(); | ||||
|             bb.Expand(g.FontSize); | ||||
|             if (bb.Contains(viewport_rect)) | ||||
|                 bb.Expand(-g.FontSize - 2.0f); | ||||
|             window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha), g.Style.WindowRounding, ~0, 3.0f); | ||||
|         } | ||||
|  | ||||
|         // Store a backup of SizeFull which we will use next frame to decide if we need scrollbars.  | ||||
|         window->SizeFullAtLastBegin = window->SizeFull; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user