@ -6977,11 +6977,11 @@ void ImGui::SetItemDefaultFocus()
ImGuiWindow * window = g . CurrentWindow ;
if ( ! window - > Appearing )
return ;
if ( g . NavWindow = = window - > RootWindowForNav & & ( g . NavInitRequest | | g . NavInitResultId ! = 0 ) & & g . NavLayer = = g . NavW indow- > DC . NavLayerCurrent )
if ( g . NavWindow = = window - > RootWindowForNav & & ( g . NavInitRequest | | g . NavInitResultId ! = 0 ) & & g . NavLayer = = w indow- > DC . NavLayerCurrent )
{
g . NavInitRequest = false ;
g . NavInitResultId = g . NavW indow- > DC . LastItemId ;
g . NavInitResultRectRel = ImRect ( g . NavW indow- > DC . LastItemRect . Min - g . NavW indow- > Pos , g . NavW indow- > DC . LastItemRect . Max - g . NavW indow- > Pos ) ;
g . NavInitResultId = w indow- > DC . LastItemId ;
g . NavInitResultRectRel = ImRect ( w indow- > DC . LastItemRect . Min - w indow- > Pos , w indow- > DC . LastItemRect . Max - w indow- > Pos ) ;
NavUpdateAnyRequestFlag ( ) ;
if ( ! IsItemVisible ( ) )
SetScrollHereY ( ) ;
@ -9276,6 +9276,7 @@ static void ImGui::NavUpdateInitResult()
return ;
// Apply result from previous navigation init request (will typically select the first item, unless SetItemDefaultFocus() has been called)
// FIXME-NAV: On _NavFlattened windows, g.NavWindow will only be updated during subsequent frame. Not a problem currently.
IMGUI_DEBUG_LOG_NAV ( " [nav] NavInitRequest: result NavID 0x%08X in Layer %d Window \" %s \" \n " , g . NavInitResultId , g . NavLayer , g . NavWindow - > Name ) ;
SetNavID ( g . NavInitResultId , g . NavLayer , 0 , g . NavInitResultRectRel ) ;
if ( g . NavInitRequestFromMove )
@ -9630,7 +9631,8 @@ static void ImGui::NavUpdateWindowing()
if ( apply_focus_window - > NavLastIds [ 0 ] = = 0 )
NavInitWindow ( apply_focus_window , false ) ;
// If the window only has a menu layer, select it directly
// If the window has ONLY a menu layer (no main layer), select it directly
// FIXME-NAV: This should be done in NavInit.. or in FocusWindow..
if ( apply_focus_window - > DC . NavLayerActiveMask = = ( 1 < < ImGuiNavLayer_Menu ) )
g . NavLayer = ImGuiNavLayer_Menu ;
}
@ -11465,12 +11467,19 @@ void ImGui::DebugNodeWindow(ImGuiWindow* window, const char* label)
BulletText ( " Scroll: (%.2f/%.2f,%.2f/%.2f) Scrollbar:%s%s " , window - > Scroll . x , window - > ScrollMax . x , window - > Scroll . y , window - > ScrollMax . y , window - > ScrollbarX ? " X " : " " , window - > ScrollbarY ? " Y " : " " ) ;
BulletText ( " Active: %d/%d, WriteAccessed: %d, BeginOrderWithinContext: %d " , window - > Active , window - > WasActive , window - > WriteAccessed , ( window - > Active | | window - > WasActive ) ? window - > BeginOrderWithinContext : - 1 ) ;
BulletText ( " Appearing: %d, Hidden: %d (CanSkip %d Cannot %d), SkipItems: %d " , window - > Appearing , window - > Hidden , window - > HiddenFramesCanSkipItems , window - > HiddenFramesCannotSkipItems , window - > SkipItems ) ;
BulletText ( " NavLastIds: 0x%08X,0x%08X, NavLayerActiveMask: %X " , window - > NavLastIds [ 0 ] , window - > NavLastIds [ 1 ] , window - > DC . NavLayerActiveMask ) ;
BulletText ( " NavLastChildNavWindow: %s " , window - > NavLastChildNavWindow ? window - > NavLastChildNavWindow - > Name : " NULL " ) ;
if ( ! window - > NavRectRel [ 0 ] . IsInverted ( ) )
BulletText ( " NavRectRel[0]: (%.1f,%.1f)(%.1f,%.1f) " , window - > NavRectRel [ 0 ] . Min . x , window - > NavRectRel [ 0 ] . Min . y , window - > NavRectRel [ 0 ] . Max . x , window - > NavRectRel [ 0 ] . Max . y ) ;
else
BulletText ( " NavRectRel[0]: <None> " ) ;
for ( int layer = 0 ; layer < ImGuiNavLayer_COUNT ; layer + + )
{
ImRect r = window - > NavRectRel [ layer ] ;
if ( r . Min . x > = r . Max . y & & r . Min . y > = r . Max . y )
{
BulletText ( " NavLastIds[%d]: 0x%08X " , layer , window - > NavLastIds [ layer ] ) ;
continue ;
}
BulletText ( " NavLastIds[%d]: 0x%08X at +(%.1f,%.1f)(%.1f,%.1f) " , layer , window - > NavLastIds [ layer ] , r . Min . x , r . Min . y , r . Max . x , r . Max . y ) ;
if ( IsItemHovered ( ) )
GetForegroundDrawList ( window ) - > AddRect ( r . Min + window - > Pos , r . Max + window - > Pos , IM_COL32 ( 255 , 255 , 0 , 255 ) ) ;
}
BulletText ( " NavLayerActiveMask: %X, NavLastChildNavWindow: %s " , window - > DC . NavLayerActiveMask , window - > NavLastChildNavWindow ? window - > NavLastChildNavWindow - > Name : " NULL " ) ;
if ( window - > RootWindow ! = window ) { DebugNodeWindow ( window - > RootWindow , " RootWindow " ) ; }
if ( window - > ParentWindow ! = NULL ) { DebugNodeWindow ( window - > ParentWindow , " ParentWindow " ) ; }
if ( window - > DC . ChildWindows . Size > 0 ) { DebugNodeWindowsList ( & window - > DC . ChildWindows , " ChildWindows " ) ; }