@ -3582,8 +3582,9 @@ void ImGui::StartMouseMovingWindow(ImGuiWindow* window) 
			
		
	
		
		
			
				
					
					    FocusWindow ( window ) ;      FocusWindow ( window ) ;   
			
		
	
		
		
			
				
					
					    SetActiveID ( window - > MoveId ,  window ) ;      SetActiveID ( window - > MoveId ,  window ) ;   
			
		
	
		
		
			
				
					
					    g . NavDisableHighlight  =  true ;      g . NavDisableHighlight  =  true ;   
			
		
	
		
		
			
				
					
					    g . ActiveIdNoClearOnFocusLoss  =  true ;   
			
		
	
		
		
			
				
					
					    g . ActiveIdClickOffset  =  g . IO . MouseClickedPos [ 0 ]  -  window - > RootWindowDockTree - > Pos ;      g . ActiveIdClickOffset  =  g . IO . MouseClickedPos [ 0 ]  -  window - > RootWindowDockTree - > Pos ;   
			
		
	
		
		
			
				
					
					    g . ActiveIdNoClearOnFocusLoss  =  true ;   
			
		
	
		
		
			
				
					
					    SetActiveIdUsingNavAndKeys ( ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					    bool  can_move_window  =  true ;      bool  can_move_window  =  true ;   
			
		
	
		
		
			
				
					
					    if  ( ( window - > Flags  &  ImGuiWindowFlags_NoMove )  | |  ( window - > RootWindowDockTree - > Flags  &  ImGuiWindowFlags_NoMove ) )      if  ( ( window - > Flags  &  ImGuiWindowFlags_NoMove )  | |  ( window - > RootWindowDockTree - > Flags  &  ImGuiWindowFlags_NoMove ) )   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -3665,8 +3666,8 @@ void ImGui::UpdateMouseMovingWindowNewFrame() 
			
		
	
		
		
			
				
					
					            // Clear the NoInput window flag set by the Viewport system
              // Clear the NoInput window flag set by the Viewport system
   
			
		
	
		
		
			
				
					
					            moving_window - > Viewport - > Flags  & =  ~ ImGuiViewportFlags_NoInputs ;  // FIXME-VIEWPORT: Test engine managed to crash here because Viewport was NULL.
              moving_window - > Viewport - > Flags  & =  ~ ImGuiViewportFlags_NoInputs ;  // FIXME-VIEWPORT: Test engine managed to crash here because Viewport was NULL.
   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					            ClearActiveID ( ) ;   
			
		
	
		
		
			
				
					
					            g . MovingWindow  =  NULL ;              g . MovingWindow  =  NULL ;   
			
		
	
		
		
			
				
					
					            ClearActiveID ( ) ;   
			
		
	
		
		
			
				
					
					        }          }   
			
		
	
		
		
			
				
					
					    }      }   
			
		
	
		
		
			
				
					
					    else      else   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -5213,6 +5214,16 @@ void ImGui::SetItemUsingMouseWheel() 
			
		
	
		
		
			
				
					
					        g . ActiveIdUsingMouseWheel  =  true ;          g . ActiveIdUsingMouseWheel  =  true ;   
			
		
	
		
		
			
				
					
					} }  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					void  ImGui : : SetActiveIdUsingNavAndKeys ( )  
			
		
	
		
		
			
				
					
					{  
			
		
	
		
		
			
				
					
					    ImGuiContext &  g  =  * GImGui ;   
			
		
	
		
		
			
				
					
					    IM_ASSERT ( g . ActiveId  ! =  0 ) ;   
			
		
	
		
		
			
				
					
					    g . ActiveIdUsingNavDirMask  =  ~ ( ImU32 ) 0 ;   
			
		
	
		
		
			
				
					
					    g . ActiveIdUsingNavInputMask  =  ~ ( ImU32 ) 0 ;   
			
		
	
		
		
			
				
					
					    g . ActiveIdUsingKeyInputMask  =  ~ ( ImU64 ) 0 ;   
			
		
	
		
		
			
				
					
					    NavMoveRequestCancel ( ) ;   
			
		
	
		
		
			
				
					
					}  
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					ImVec2  ImGui : : GetItemRectMin ( ) ImVec2  ImGui : : GetItemRectMin ( )  
			
		
	
		
		
			
				
					
					{ {  
			
		
	
		
		
			
				
					
					    ImGuiWindow *  window  =  GetCurrentWindowRead ( ) ;      ImGuiWindow *  window  =  GetCurrentWindowRead ( ) ;   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -10571,10 +10582,8 @@ bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags) 
			
		
	
		
		
			
				
					
					        source_parent_id  =  window - > IDStack . back ( ) ;          source_parent_id  =  window - > IDStack . back ( ) ;   
			
		
	
		
		
			
				
					
					        source_drag_active  =  IsMouseDragging ( mouse_button ) ;          source_drag_active  =  IsMouseDragging ( mouse_button ) ;   
			
		
	
		
		
			
				
					
					
 
			
		
	
		
		
			
				
					
					        // Disable navigation and key inputs while dragging
          // Disable navigation and key inputs while dragging + cancel existing request if any
   
			
				
				
			
		
	
		
		
			
				
					
					        g . ActiveIdUsingNavDirMask  =  ~ ( ImU32 ) 0 ;          SetActiveIdUsingNavAndKeys ( ) ;   
			
				
				
			
		
	
		
		
			
				
					
					        g . ActiveIdUsingNavInputMask  =  ~ ( ImU32 ) 0 ;   
			
		
	
		
		
			
				
					
					        g . ActiveIdUsingKeyInputMask  =  ~ ( ImU64 ) 0 ;   
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					    }      }   
			
		
	
		
		
			
				
					
					    else      else   
			
		
	
		
		
			
				
					
					    {      {   
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -16524,6 +16533,7 @@ void ImGui::ShowMetricsWindow(bool* p_open) 
			
		
	
		
		
			
				
					
					        Indent ( ) ;          Indent ( ) ;   
			
		
	
		
		
			
				
					
					        Text ( " ActiveId: 0x%08X/0x%08X (%.2f sec), AllowOverlap: %d, Source: %s " ,  g . ActiveId ,  g . ActiveIdPreviousFrame ,  g . ActiveIdTimer ,  g . ActiveIdAllowOverlap ,  input_source_names [ g . ActiveIdSource ] ) ;          Text ( " ActiveId: 0x%08X/0x%08X (%.2f sec), AllowOverlap: %d, Source: %s " ,  g . ActiveId ,  g . ActiveIdPreviousFrame ,  g . ActiveIdTimer ,  g . ActiveIdAllowOverlap ,  input_source_names [ g . ActiveIdSource ] ) ;   
			
		
	
		
		
			
				
					
					        Text ( " ActiveIdWindow: '%s' " ,  g . ActiveIdWindow  ?  g . ActiveIdWindow - > Name  :  " NULL " ) ;          Text ( " ActiveIdWindow: '%s' " ,  g . ActiveIdWindow  ?  g . ActiveIdWindow - > Name  :  " NULL " ) ;   
			
		
	
		
		
			
				
					
					        Text ( " ActiveIdUsing: Wheel: %d, NavDirMask: %X, NavInputMask: %X, KeyInputMask: %X " ,  g . ActiveIdUsingMouseWheel ,  g . ActiveIdUsingNavDirMask ,  g . ActiveIdUsingNavInputMask ,  g . ActiveIdUsingKeyInputMask ) ;   
			
		
	
		
		
			
				
					
					        Text ( " HoveredId: 0x%08X/0x%08X (%.2f sec), AllowOverlap: %d " ,  g . HoveredId ,  g . HoveredIdPreviousFrame ,  g . HoveredIdTimer ,  g . HoveredIdAllowOverlap ) ;  // Data is "in-flight" so depending on when the Metrics window is called we may see current frame information or not
          Text ( " HoveredId: 0x%08X/0x%08X (%.2f sec), AllowOverlap: %d " ,  g . HoveredId ,  g . HoveredIdPreviousFrame ,  g . HoveredIdTimer ,  g . HoveredIdAllowOverlap ) ;  // Data is "in-flight" so depending on when the Metrics window is called we may see current frame information or not
   
			
		
	
		
		
			
				
					
					        Text ( " DragDrop: %d, SourceId = 0x%08X, Payload  \" %s \"  (%d bytes) " ,  g . DragDropActive ,  g . DragDropPayload . SourceId ,  g . DragDropPayload . DataType ,  g . DragDropPayload . DataSize ) ;          Text ( " DragDrop: %d, SourceId = 0x%08X, Payload  \" %s \"  (%d bytes) " ,  g . DragDropActive ,  g . DragDropPayload . SourceId ,  g . DragDropPayload . DataType ,  g . DragDropPayload . DataSize ) ;   
			
		
	
		
		
			
				
					
					        Unindent ( ) ;          Unindent ( ) ;