@ -3867,11 +3867,7 @@ void ImGui::UpdateMouseMovingWindowNewFrame() 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        if  ( g . IO . MouseDown [ 0 ]  & &  IsMousePosValid ( & g . IO . MousePos ) )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ImVec2  pos  =  g . IO . MousePos  -  g . ActiveIdClickOffset ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            if  ( moving_window - > Pos . x  ! =  pos . x  | |  moving_window - > Pos . y  ! =  pos . y )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					                MarkIniSettingsDirty ( moving_window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SetWindowPos ( moving_window ,  pos ,  ImGuiCond_Always ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            FocusWindow ( g . MovingWindow ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        else   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -7140,6 +7136,9 @@ void ImGui::SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiCond cond) 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    const  ImVec2  old_pos  =  window - > Pos ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > Pos  =  ImFloor ( pos ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImVec2  offset  =  window - > Pos  -  old_pos ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( offset . x  = =  0.0f  & &  offset . y  = =  0.0f )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        return ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    MarkIniSettingsDirty ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > DC . CursorPos  + =  offset ;          // As we happen to move the window while it is being appended to (which is a bad idea - will smear) let's at least offset the cursor
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > DC . CursorMaxPos  + =  offset ;       // And more importantly we need to offset CursorMaxPos/CursorStartPos this so ContentSize calculation doesn't get affected.
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > DC . IdealMaxPos  + =  offset ;   
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -7174,26 +7173,19 @@ void ImGui::SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiCond con 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > SetWindowSizeAllowFlags  & =  ~ ( ImGuiCond_Once  |  ImGuiCond_FirstUseEver  |  ImGuiCond_Appearing ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    // Set
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( size . x  >  0.0f )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > AutoFitFramesX  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > SizeFull . x  =  IM_FLOOR ( size . x ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > AutoFitFramesX  =  2 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    ImVec2  old_size  =  window - > SizeFull ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > AutoFitFramesX  =  ( size . x  < =  0.0f )  ?  2  :  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    window - > AutoFitFramesY  =  ( size . y  < =  0.0f )  ?  2  :  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( size . x  < =  0.0f )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > AutoFitOnlyGrows  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( size . y  >  0.0f )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > AutoFitFramesY  =  0 ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > SizeFull . y  =  IM_FLOOR ( size . y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    {   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > AutoFitFramesY  =  2 ;    
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > SizeFull . x  =  IM_FLOOR ( size . x ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( size . y  < =  0.0f )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > AutoFitOnlyGrows  =  false ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    else   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        window - > SizeFull . y  =  IM_FLOOR ( size . y ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    if  ( old_size . x  ! =  window - > SizeFull . x  | |  old_size . y  ! =  window - > SizeFull . y )   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        MarkIniSettingsDirty ( window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					}  
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					
 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					void  ImGui : : SetWindowSize ( const  ImVec2 &  size ,  ImGuiCond  cond )  
				
			 
			
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
				 
				 
				
					@ -10930,7 +10922,6 @@ static void ImGui::NavUpdateWindowing() 
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            const  float  move_speed  =  ImFloor ( NAV_MOVE_SPEED  *  io . DeltaTime  *  ImMin ( io . DisplayFramebufferScale . x ,  io . DisplayFramebufferScale . y ) ) ;  // FIXME: Doesn't handle variable framerate very well
   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            ImGuiWindow *  moving_window  =  g . NavWindowingTarget - > RootWindow ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            SetWindowPos ( moving_window ,  moving_window - > Pos  +  move_delta  *  move_speed ,  ImGuiCond_Always ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            MarkIniSettingsDirty ( moving_window ) ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					            g . NavDisableMouseHover  =  true ;   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					        }   
				
			 
			
		
	
		
			
				
					 
					 
				
				 
				 
				
					    }