@ -3469,7 +3469,7 @@ void ImGui::UpdateMouseWheel()
// Zoom / Scale window
// Zoom / Scale window
// FIXME-OBSOLETE: This is an old feature, it still works but pretty much nobody is using it and may be best redesigned.
// FIXME-OBSOLETE: This is an old feature, it still works but pretty much nobody is using it and may be best redesigned.
if ( g . IO . MouseWheel ! = 0.0f & & g . IO . KeyCtrl & & g . IO . FontAllowUserScaling )
if ( g . IO . MouseWheel ! = 0.0f & & g . IO . KeyCtrl & & g . IO . FontAllowUserScaling & & ! window - > Collapsed )
{
{
const float new_font_scale = ImClamp ( window - > FontWindowScale + g . IO . MouseWheel * 0.10f , 0.50f , 2.50f ) ;
const float new_font_scale = ImClamp ( window - > FontWindowScale + g . IO . MouseWheel * 0.10f , 0.50f , 2.50f ) ;
const float scale = new_font_scale / window - > FontWindowScale ;
const float scale = new_font_scale / window - > FontWindowScale ;
@ -3477,7 +3477,7 @@ void ImGui::UpdateMouseWheel()
if ( ! ( window - > Flags & ImGuiWindowFlags_ChildWindow ) )
if ( ! ( window - > Flags & ImGuiWindowFlags_ChildWindow ) )
{
{
const ImVec2 offset = window - > Size * ( 1.0f - scale ) * ( g . IO . MousePos - window - > Pos ) / window - > Size ;
const ImVec2 offset = window - > Size * ( 1.0f - scale ) * ( g . IO . MousePos - window - > Pos ) / window - > Size ;
window- > Pos = ImFloor ( window - > Pos + offset ) ;
SetWindowPos( window , window - > Pos + offset , 0 ) ;
window - > Size = ImFloor ( window - > Size * scale ) ;
window - > Size = ImFloor ( window - > Size * scale ) ;
window - > SizeFull = ImFloor ( window - > SizeFull * scale ) ;
window - > SizeFull = ImFloor ( window - > SizeFull * scale ) ;
}
}
@ -8601,10 +8601,10 @@ static void ImGui::NavUpdate()
g . IO . NavInputsDownDuration [ i ] = ( g . IO . NavInputs [ i ] > 0.0f ) ? ( g . IO . NavInputsDownDuration [ i ] < 0.0f ? 0.0f : g . IO . NavInputsDownDuration [ i ] + g . IO . DeltaTime ) : - 1.0f ;
g . IO . NavInputsDownDuration [ i ] = ( g . IO . NavInputs [ i ] > 0.0f ) ? ( g . IO . NavInputsDownDuration [ i ] < 0.0f ? 0.0f : g . IO . NavInputsDownDuration [ i ] + g . IO . DeltaTime ) : - 1.0f ;
// Process navigation init request (select first/default focus)
// Process navigation init request (select first/default focus)
if ( g . NavInitResultId ! = 0 & & ( ! g . NavDisableHighlight | | g . NavInitRequestFromMove ) )
// In very rare cases g.NavWindow may be null (e.g. clearing focus after requesting an init request, which does happen when releasing Alt while clicking on void)
if ( g . NavInitResultId ! = 0 & & ( ! g . NavDisableHighlight | | g . NavInitRequestFromMove ) & & g . NavWindow )
{
{
// Apply result from previous navigation init request (will typically select the first item, unless SetItemDefaultFocus() has been called)
// Apply result from previous navigation init request (will typically select the first item, unless SetItemDefaultFocus() has been called)
IM_ASSERT ( g . NavWindow ) ;
if ( g . NavInitRequestFromMove )
if ( g . NavInitRequestFromMove )
SetNavIDWithRectRel ( g . NavInitResultId , g . NavLayer , g . NavInitResultRectRel ) ;
SetNavIDWithRectRel ( g . NavInitResultId , g . NavLayer , g . NavInitResultRectRel ) ;
else
else
@ -9066,7 +9066,7 @@ static void ImGui::NavUpdateWindowing()
{
{
const float NAV_MOVE_SPEED = 800.0f ;
const float NAV_MOVE_SPEED = 800.0f ;
const float move_speed = ImFloor ( NAV_MOVE_SPEED * g . IO . DeltaTime * ImMin ( g . IO . DisplayFramebufferScale . x , g . IO . DisplayFramebufferScale . y ) ) ; // FIXME: Doesn't code variable framerate very well
const float move_speed = ImFloor ( NAV_MOVE_SPEED * g . IO . DeltaTime * ImMin ( g . IO . DisplayFramebufferScale . x , g . IO . DisplayFramebufferScale . y ) ) ; // FIXME: Doesn't code variable framerate very well
g. NavWindowingTarget - > RootWindow - > Pos + = move_delta * move_speed ;
SetWindowPos( g . NavWindowingTarget - > RootWindow , g. NavWindowingTarget - > RootWindow - > Pos + move_delta * move_speed , ImGuiCond_Always ) ;
g . NavDisableMouseHover = true ;
g . NavDisableMouseHover = true ;
MarkIniSettingsDirty ( g . NavWindowingTarget ) ;
MarkIniSettingsDirty ( g . NavWindowingTarget ) ;
}
}