mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Merge branch 'master' into navigation + fix previous merge
# Conflicts: # imgui.cpp
This commit is contained in:
		
							
								
								
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							@@ -716,7 +716,7 @@ namespace ImGui
 | 
				
			|||||||
static void             NavUpdate();
 | 
					static void             NavUpdate();
 | 
				
			||||||
static void             NavUpdateWindowing();
 | 
					static void             NavUpdateWindowing();
 | 
				
			||||||
static void             NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, const ImGuiID id);
 | 
					static void             NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, const ImGuiID id);
 | 
				
			||||||
static void             FocusFrontMostActiveWindow();
 | 
					static void             FocusFrontMostActiveWindow(ImGuiWindow* ignore_window);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//-----------------------------------------------------------------------------
 | 
					//-----------------------------------------------------------------------------
 | 
				
			||||||
@@ -3318,7 +3318,7 @@ void ImGui::NewFrame()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Closing the focused window restore focus to the first active root window in descending z-order
 | 
					    // Closing the focused window restore focus to the first active root window in descending z-order
 | 
				
			||||||
    if (g.NavWindow && !g.NavWindow->WasActive)
 | 
					    if (g.NavWindow && !g.NavWindow->WasActive)
 | 
				
			||||||
        FocusFrontMostActiveWindow();
 | 
					        FocusFrontMostActiveWindow(NULL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // No window should be open at the beginning of the frame.
 | 
					    // No window should be open at the beginning of the frame.
 | 
				
			||||||
    // But in order to allow the user to call NewFrame() multiple times without calling Render(), we are doing an explicit clear.
 | 
					    // But in order to allow the user to call NewFrame() multiple times without calling Render(), we are doing an explicit clear.
 | 
				
			||||||
@@ -6137,11 +6137,11 @@ void ImGui::FocusWindow(ImGuiWindow* window)
 | 
				
			|||||||
        BringWindowToFront(window);
 | 
					        BringWindowToFront(window);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void ImGui::FocusFrontMostActiveWindow()
 | 
					void ImGui::FocusFrontMostActiveWindow(ImGuiWindow* ignore_window)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ImGuiContext& g = *GImGui;
 | 
					    ImGuiContext& g = *GImGui;
 | 
				
			||||||
    for (int i = g.Windows.Size - 1; i >= 0; i--)
 | 
					    for (int i = g.Windows.Size - 1; i >= 0; i--)
 | 
				
			||||||
        if (g.Windows[i] != g.NavWindow && g.Windows[i]->WasActive && !(g.Windows[i]->Flags & ImGuiWindowFlags_ChildWindow))
 | 
					        if (g.Windows[i] != ignore_window && g.Windows[i]->WasActive && !(g.Windows[i]->Flags & ImGuiWindowFlags_ChildWindow))
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            FocusWindow(g.Windows[i]);
 | 
					            FocusWindow(g.Windows[i]);
 | 
				
			||||||
            return;
 | 
					            return;
 | 
				
			||||||
@@ -10723,7 +10723,7 @@ void ImGui::EndMainMenuBar()
 | 
				
			|||||||
    // When the user has left the menu layer (typically: closed menus through activation of an item), we restore focus to the previous window
 | 
					    // When the user has left the menu layer (typically: closed menus through activation of an item), we restore focus to the previous window
 | 
				
			||||||
    ImGuiContext& g = *GImGui;
 | 
					    ImGuiContext& g = *GImGui;
 | 
				
			||||||
    if (g.CurrentWindow == g.NavWindow && g.NavLayer == 0)
 | 
					    if (g.CurrentWindow == g.NavWindow && g.NavLayer == 0)
 | 
				
			||||||
        FocusPreviousWindow();
 | 
					        FocusFrontMostActiveWindow(g.NavWindow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    End();
 | 
					    End();
 | 
				
			||||||
    PopStyleVar(2);
 | 
					    PopStyleVar(2);
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user