mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-11-04 01:34:32 +00:00 
			
		
		
		
	Internals: Fixed Navigation from reaching ImGuiItemFlags_Disabled items (#211) + Examples comments
This commit is contained in:
		@@ -47,6 +47,7 @@ int main(int, char**)
 | 
				
			|||||||
    ImGui::CreateContext();
 | 
					    ImGui::CreateContext();
 | 
				
			||||||
    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
					    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
				
			||||||
    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;  // Enable Keyboard Controls
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;  // Enable Keyboard Controls
 | 
				
			||||||
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;   // Enable Gamepad Controls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Setup Dear ImGui style
 | 
					    // Setup Dear ImGui style
 | 
				
			||||||
    ImGui::StyleColorsDark();
 | 
					    ImGui::StyleColorsDark();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -47,6 +47,7 @@ int main(int, char**)
 | 
				
			|||||||
    ImGui::CreateContext();
 | 
					    ImGui::CreateContext();
 | 
				
			||||||
    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
					    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
				
			||||||
    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;  // Enable Keyboard Controls
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;  // Enable Keyboard Controls
 | 
				
			||||||
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;   // Enable Gamepad Controls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Setup Dear ImGui style
 | 
					    // Setup Dear ImGui style
 | 
				
			||||||
    ImGui::StyleColorsDark();
 | 
					    ImGui::StyleColorsDark();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -71,6 +71,7 @@ int main(int, char**)
 | 
				
			|||||||
    ImGui::CreateContext();
 | 
					    ImGui::CreateContext();
 | 
				
			||||||
    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
					    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
				
			||||||
    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;  // Enable Keyboard Controls
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;  // Enable Keyboard Controls
 | 
				
			||||||
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;   // Enable Gamepad Controls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Setup Dear ImGui style
 | 
					    // Setup Dear ImGui style
 | 
				
			||||||
    ImGui::StyleColorsDark();
 | 
					    ImGui::StyleColorsDark();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,6 +45,7 @@ int main(int, char**)
 | 
				
			|||||||
    ImGui::CreateContext();
 | 
					    ImGui::CreateContext();
 | 
				
			||||||
    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
					    ImGuiIO& io = ImGui::GetIO(); (void)io;
 | 
				
			||||||
    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;  // Enable Keyboard Controls
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard;  // Enable Keyboard Controls
 | 
				
			||||||
 | 
					    //io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad;   // Enable Gamepad Controls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Setup Dear ImGui style
 | 
					    // Setup Dear ImGui style
 | 
				
			||||||
    ImGui::StyleColorsDark();
 | 
					    ImGui::StyleColorsDark();
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7353,7 +7353,7 @@ static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, con
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Process Move Request (scoring for navigation)
 | 
					    // Process Move Request (scoring for navigation)
 | 
				
			||||||
    // FIXME-NAV: Consider policy for double scoring (scoring from NavScoringRectScreen + scoring from a rect wrapped according to current wrapping policy)
 | 
					    // FIXME-NAV: Consider policy for double scoring (scoring from NavScoringRectScreen + scoring from a rect wrapped according to current wrapping policy)
 | 
				
			||||||
    if ((g.NavId != id || (g.NavMoveRequestFlags & ImGuiNavMoveFlags_AllowCurrentNavId)) && !(item_flags & ImGuiItemFlags_NoNav))
 | 
					    if ((g.NavId != id || (g.NavMoveRequestFlags & ImGuiNavMoveFlags_AllowCurrentNavId)) && !(item_flags & (ImGuiItemFlags_Disabled|ImGuiItemFlags_NoNav)))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        ImGuiNavMoveResult* result = (window == g.NavWindow) ? &g.NavMoveResultLocal : &g.NavMoveResultOther;
 | 
					        ImGuiNavMoveResult* result = (window == g.NavWindow) ? &g.NavMoveResultLocal : &g.NavMoveResultOther;
 | 
				
			||||||
#if IMGUI_DEBUG_NAV_SCORING
 | 
					#if IMGUI_DEBUG_NAV_SCORING
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5276,7 +5276,7 @@ bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags fl
 | 
				
			|||||||
    if (flags & ImGuiSelectableFlags_Disabled)
 | 
					    if (flags & ImGuiSelectableFlags_Disabled)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        ImGuiItemFlags backup_item_flags = window->DC.ItemFlags;
 | 
					        ImGuiItemFlags backup_item_flags = window->DC.ItemFlags;
 | 
				
			||||||
        window->DC.ItemFlags |= ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus;
 | 
					        window->DC.ItemFlags |= ImGuiItemFlags_Disabled | ImGuiItemFlags_NoNavDefaultFocus;
 | 
				
			||||||
        item_add = ItemAdd(bb, id);
 | 
					        item_add = ItemAdd(bb, id);
 | 
				
			||||||
        window->DC.ItemFlags = backup_item_flags;
 | 
					        window->DC.ItemFlags = backup_item_flags;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user