@ -1077,7 +1077,7 @@ static int FindWindowFocusIndex(ImGuiWindow* window);
// Misc
static void UpdateMouseInputs ( ) ;
static void UpdateMouseWheel ( ) ;
static void UpdateManualResize ( ImGuiWindow * window , const ImVec2 & size_auto_fit , int * border_held , int resize_grip_count , ImU32 resize_grip_col [ 4 ] ) ;
static bool UpdateManualResize ( ImGuiWindow * window , const ImVec2 & size_auto_fit , int * border_held , int resize_grip_count , ImU32 resize_grip_col [ 4 ] ) ;
static void RenderWindowOuterBorders ( ImGuiWindow * window ) ;
static void RenderWindowDecorations ( ImGuiWindow * window , const ImRect & title_bar_rect , bool title_bar_is_highlight , int resize_grip_count , const ImU32 resize_grip_col [ 4 ] , float resize_grip_draw_size ) ;
static void RenderWindowTitleBarContents ( ImGuiWindow * window , const ImRect & title_bar_rect , const char * name , bool * p_open ) ;
@ -4829,15 +4829,18 @@ static ImRect GetResizeBorderRect(ImGuiWindow* window, int border_n, float perp_
}
// Handle resize for: Resize Grips, Borders, Gamepad
static void ImGui : : UpdateManualResize ( ImGuiWindow * window , const ImVec2 & size_auto_fit , int * border_held , int resize_grip_count , ImU32 resize_grip_col [ 4 ] )
// Return true when using auto-fit (double click on resize grip)
static bool ImGui : : UpdateManualResize ( ImGuiWindow * window , const ImVec2 & size_auto_fit , int * border_held , int resize_grip_count , ImU32 resize_grip_col [ 4 ] )
{
ImGuiContext & g = * GImGui ;
ImGuiWindowFlags flags = window - > Flags ;
if ( ( flags & ImGuiWindowFlags_NoResize ) | | ( flags & ImGuiWindowFlags_AlwaysAutoResize ) | | window - > AutoFitFramesX > 0 | | window - > AutoFitFramesY > 0 )
return ;
return false ;
if ( window - > WasActive = = false ) // Early out to avoid running this code for e.g. an hidden implicit/fallback Debug window.
return ;
return false ;
bool ret_auto_fit = false ;
const int resize_border_count = g . IO . ConfigWindowsResizeFromEdges ? 4 : 0 ;
const float grip_draw_size = ( float ) ( int ) ImMax ( g . FontSize * 1.35f , window - > WindowRounding + 1.0f + g . FontSize * 0.2f ) ;
const float grip_hover_inner_size = ( float ) ( int ) ( grip_draw_size * 0.75f ) ;
@ -4871,6 +4874,7 @@ static void ImGui::UpdateManualResize(ImGuiWindow* window, const ImVec2& size_au
{
// Manual auto-fit when double-clicking
size_target = CalcSizeAfterConstraint ( window , size_auto_fit ) ;
ret_auto_fit = true ;
ClearActiveID ( ) ;
}
else if ( held )
@ -4945,6 +4949,7 @@ static void ImGui::UpdateManualResize(ImGuiWindow* window, const ImVec2& size_au
window - > DC . NavLayerCurrentMask = ( 1 < < ImGuiNavLayer_Main ) ;
window - > Size = window - > SizeFull ;
return ret_auto_fit ;
}
static inline void ClampWindowRect ( ImGuiWindow * window , const ImRect & rect , const ImVec2 & padding )
@ -5478,7 +5483,8 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
const int resize_grip_count = g . IO . ConfigWindowsResizeFromEdges ? 2 : 1 ; // 4
const float resize_grip_draw_size = ( float ) ( int ) ImMax ( g . FontSize * 1.35f , window - > WindowRounding + 1.0f + g . FontSize * 0.2f ) ;
if ( ! window - > Collapsed )
UpdateManualResize ( window , size_auto_fit , & border_held , resize_grip_count , & resize_grip_col [ 0 ] ) ;
if ( UpdateManualResize ( window , size_auto_fit , & border_held , resize_grip_count , & resize_grip_col [ 0 ] ) )
use_current_size_for_scrollbar_x = use_current_size_for_scrollbar_y = true ;
window - > ResizeBorderHeld = ( signed char ) border_held ;
// SCROLLBAR VISIBILITY