mirror of
https://github.com/ocornut/imgui.git
synced 2024-12-04 22:39:05 +08:00
Windows: tidying up skipitems logic at end of Begin(), normally should be no meaningful side-effect.
This commit is contained in:
parent
bc3c6e74e6
commit
4e4042bc33
@ -6915,18 +6915,15 @@ bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags)
|
|||||||
// Update visibility
|
// Update visibility
|
||||||
if (first_begin_of_the_frame)
|
if (first_begin_of_the_frame)
|
||||||
{
|
{
|
||||||
if (flags & ImGuiWindowFlags_ChildWindow)
|
if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_ChildMenu))
|
||||||
{
|
{
|
||||||
// Child window can be out of sight and have "negative" clip windows.
|
// Child window can be out of sight and have "negative" clip windows.
|
||||||
// Mark them as collapsed so commands are skipped earlier (we can't manually collapse them because they have no title bar).
|
// Mark them as collapsed so commands are skipped earlier (we can't manually collapse them because they have no title bar).
|
||||||
IM_ASSERT((flags & ImGuiWindowFlags_NoTitleBar) != 0);
|
IM_ASSERT((flags & ImGuiWindowFlags_NoTitleBar) != 0);
|
||||||
if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) // FIXME: Doesn't make sense for ChildWindow??
|
|
||||||
{
|
|
||||||
const bool nav_request = (flags & ImGuiWindowFlags_NavFlattened) && (g.NavAnyRequest && g.NavWindow && g.NavWindow->RootWindowForNav == window->RootWindowForNav);
|
const bool nav_request = (flags & ImGuiWindowFlags_NavFlattened) && (g.NavAnyRequest && g.NavWindow && g.NavWindow->RootWindowForNav == window->RootWindowForNav);
|
||||||
if (!g.LogEnabled && !nav_request)
|
if (!g.LogEnabled && !nav_request)
|
||||||
if (window->OuterRectClipped.Min.x >= window->OuterRectClipped.Max.x || window->OuterRectClipped.Min.y >= window->OuterRectClipped.Max.y)
|
if (window->OuterRectClipped.Min.x >= window->OuterRectClipped.Max.x || window->OuterRectClipped.Min.y >= window->OuterRectClipped.Max.y)
|
||||||
window->HiddenFramesCanSkipItems = 1;
|
window->HiddenFramesCanSkipItems = 1;
|
||||||
}
|
|
||||||
|
|
||||||
// Hide along with parent or if parent is collapsed
|
// Hide along with parent or if parent is collapsed
|
||||||
if (parent_window && (parent_window->Collapsed || parent_window->HiddenFramesCanSkipItems > 0))
|
if (parent_window && (parent_window->Collapsed || parent_window->HiddenFramesCanSkipItems > 0))
|
||||||
|
Loading…
Reference in New Issue
Block a user