mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Nav: Added NavMoveResultParentId internal info to record when the parent/context of a given NavId. Useful for various algorithms (currently looking at range selection stuff) (#787)
This commit is contained in:
		| @@ -2220,6 +2220,7 @@ bool ImGui::ItemAdd(const ImRect& bb, const ImGuiID* id, const ImRect* nav_bb_ar | ||||
|                 if (new_best) | ||||
|                 { | ||||
|                     g.NavMoveResultId = *id; | ||||
|                     g.NavMoveResultParentId = window->IDStack.back(); | ||||
|                     g.NavMoveResultRectRel = nav_bb_rel; | ||||
|                 } | ||||
|  | ||||
| @@ -2856,6 +2857,7 @@ static void NavUpdate() | ||||
|  | ||||
|     // Reset search  | ||||
|     g.NavMoveResultId = 0; | ||||
|     g.NavMoveResultParentId = 0; | ||||
|     g.NavMoveResultDistAxial = g.NavMoveResultDistBox = g.NavMoveResultDistCenter = FLT_MAX; | ||||
|  | ||||
|     // When we have manually scrolled (without using navigation) and NavId becomes out of bounds, we clamp its bounding box (used for search) to the visible area to restart navigation within visible items | ||||
|   | ||||
| @@ -480,6 +480,7 @@ struct ImGuiContext | ||||
|     ImGuiDir                NavMoveDir;                         // West/East/North/South | ||||
|     ImGuiDir                NavMoveDirLast;                     // | ||||
|     ImGuiID                 NavMoveResultId;                    // Best move request candidate | ||||
|     ImGuiID                 NavMoveResultParentId;              // | ||||
|     float                   NavMoveResultDistBox;               // Best move request candidate box distance to current NavId | ||||
|     float                   NavMoveResultDistCenter;            // Best move request candidate center distance to current NavId | ||||
|     float                   NavMoveResultDistAxial; | ||||
| @@ -590,6 +591,7 @@ struct ImGuiContext | ||||
|         NavMoveRequestForwardStep = 0; | ||||
|         NavMoveDir = NavMoveDirLast = ImGuiDir_None; | ||||
|         NavMoveResultId = 0; | ||||
|         NavMoveResultParentId = 0; | ||||
|         NavMoveResultDistBox = NavMoveResultDistCenter = NavMoveResultDistAxial = 0.0f; | ||||
|  | ||||
|         SetNextWindowPosVal = ImVec2(0.0f, 0.0f); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user