You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Nav: It's now possible to navigate sibling of a menu-bar while navigating inside one of their child. If a Left<>Right navigation request fails to find a match we forward the request to the root menu. (#787, #126)
Currently the sibling menu is isn't automatically opened, that's still left to it (and even that can be anoying in Windows when the first menu-item is a child menu)
// When we have manually scrolled (without using navigation) and NavId becomes out of bounds, we clamp its bounding box (used for search) to the visible area to restart navigation within visible items
2837
2858
if (g.NavMoveRequest && g.NavMoveFromClampedRefRect && g.NavLayer == 0)
2838
2859
{
2839
-
// When we have manually scrolled and NavId is out of bounds, we clamp its bounding box (used for search) to the visible area to restart navigation within visible items
// To do so we claim focus back, restore NavId and then process the movement request for yet another frame.
10001
+
// This involve a one-frame delay which isn't very problematic in this situation. We could remove it by scoring in advance for multiple window (probably not worth the hassle/cost)
bool NavHasScroll; // Set when scrolling can be used (ScrollMax > 0.0f)
667
-
int NavLayerCurrent; // Current layer, 0..31 (we currently only use 0..1)
668
+
bool NavHasScroll; // Set when scrolling can be used (ScrollMax > 0.0f)
669
+
int NavLayerCurrent; // Current layer, 0..31 (we currently only use 0..1)
668
670
int NavLayerActiveMask; // Which layer have been written to (result from previous frame)
669
671
int NavLayerActiveMaskNext; // Which layer have been written to (buffer for current frame)
670
672
bool MenuBarAppending; // FIXME: Remove this
671
673
float MenuBarOffsetX;
672
674
ImVector<ImGuiWindow*> ChildWindows;
673
675
ImGuiStorage* StateStorage;
674
676
ImGuiLayoutType LayoutType;
677
+
ImGuiLayoutType ParentLayoutType; // Layout type of parent window at the time of Begin()
675
678
676
679
// We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings.
0 commit comments