mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Internals: reorder tests in ItemHoverable() so most likely early out are taken first.
This commit is contained in:
		
							
								
								
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								imgui.cpp
									
									
									
									
									
								
							@@ -4031,17 +4031,17 @@ bool ImGui::IsItemHovered(ImGuiHoveredFlags flags)
 | 
			
		||||
bool ImGui::ItemHoverable(const ImRect& bb, ImGuiID id)
 | 
			
		||||
{
 | 
			
		||||
    ImGuiContext& g = *GImGui;
 | 
			
		||||
    if (g.HoveredId != 0 && g.HoveredId != id && !g.HoveredIdAllowOverlap)
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
    ImGuiWindow* window = g.CurrentWindow;
 | 
			
		||||
    if (g.HoveredWindow != window)
 | 
			
		||||
        return false;
 | 
			
		||||
    if (g.ActiveId != 0 && g.ActiveId != id && !g.ActiveIdAllowOverlap)
 | 
			
		||||
        return false;
 | 
			
		||||
    if (!IsMouseHoveringRect(bb.Min, bb.Max))
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
    if (g.HoveredId != 0 && g.HoveredId != id && !g.HoveredIdAllowOverlap)
 | 
			
		||||
        return false;
 | 
			
		||||
    if (g.ActiveId != 0 && g.ActiveId != id && !g.ActiveIdAllowOverlap)
 | 
			
		||||
        return false;
 | 
			
		||||
 | 
			
		||||
    // Done with rectangle culling so we can perform heavier checks now.
 | 
			
		||||
    ImGuiItemFlags item_flags = (g.LastItemData.ID == id ? g.LastItemData.InFlags : g.CurrentItemFlags);
 | 
			
		||||
    if (!(item_flags & ImGuiItemFlags_NoWindowHoverableCheck) && !IsWindowContentHoverable(window, ImGuiHoveredFlags_None))
 | 
			
		||||
 
 | 
			
		||||
@@ -1167,8 +1167,6 @@ void ImGui::TableUpdateLayout(ImGuiTable* table)
 | 
			
		||||
 | 
			
		||||
// Process hit-testing on resizing borders. Actual size change will be applied in EndTable()
 | 
			
		||||
// - Set table->HoveredColumnBorder with a short delay/timer to reduce visual feedback noise.
 | 
			
		||||
// - Submit ahead of table contents and header, use ImGuiButtonFlags_AllowItemOverlap to prioritize
 | 
			
		||||
//   widgets overlapping the same area.
 | 
			
		||||
void ImGui::TableUpdateBorders(ImGuiTable* table)
 | 
			
		||||
{
 | 
			
		||||
    ImGuiContext& g = *GImGui;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user