mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-03 22:51:06 +01:00 
			
		
		
		
	WIP Menus: scrolling section of the window is clipped by the menu bar (#126)
This commit is contained in:
		@@ -3759,7 +3759,7 @@ bool ImGui::Begin(const char* name, bool* p_opened, const ImVec2& size_on_first_
 | 
				
			|||||||
    // We set this up after processing the resize grip so that our clip rectangle doesn't lag by a frame
 | 
					    // We set this up after processing the resize grip so that our clip rectangle doesn't lag by a frame
 | 
				
			||||||
    // Note that if our window is collapsed we will end up with a null clipping rectangle which is the correct behavior.
 | 
					    // Note that if our window is collapsed we will end up with a null clipping rectangle which is the correct behavior.
 | 
				
			||||||
    const ImRect title_bar_rect = window->TitleBarRect();
 | 
					    const ImRect title_bar_rect = window->TitleBarRect();
 | 
				
			||||||
    ImVec4 clip_rect(title_bar_rect.Min.x+0.5f+window->WindowPadding().x*0.5f, title_bar_rect.Max.y+0.5f, window->Rect().Max.x+0.5f-window->WindowPadding().x*0.5f, window->Rect().Max.y-1.5f);
 | 
					    ImVec4 clip_rect(title_bar_rect.Min.x+0.5f+window->WindowPadding().x*0.5f, title_bar_rect.Max.y+window->MenuBarHeight()+0.5f, window->Rect().Max.x+0.5f-window->WindowPadding().x*0.5f, window->Rect().Max.y-1.5f);
 | 
				
			||||||
    if (window->ScrollbarY)
 | 
					    if (window->ScrollbarY)
 | 
				
			||||||
        clip_rect.z -= style.ScrollbarWidth;
 | 
					        clip_rect.z -= style.ScrollbarWidth;
 | 
				
			||||||
    PushClipRect(clip_rect);
 | 
					    PushClipRect(clip_rect);
 | 
				
			||||||
@@ -7452,7 +7452,8 @@ bool ImGui::BeginMenuBar()
 | 
				
			|||||||
    IM_ASSERT(!window->DC.MenuBarAppending);
 | 
					    IM_ASSERT(!window->DC.MenuBarAppending);
 | 
				
			||||||
    window->DC.MenuBarAppending = true;
 | 
					    window->DC.MenuBarAppending = true;
 | 
				
			||||||
    ImGui::PushID("##menubar");
 | 
					    ImGui::PushID("##menubar");
 | 
				
			||||||
 | 
					    ImRect rect = window->MenuBarRect();
 | 
				
			||||||
 | 
					    PushClipRect(ImVec4(rect.Min.x+0.5f, rect.Min.y-0.5f, rect.Max.x+0.5f, rect.Max.y-1.5f), false);
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -7465,6 +7466,7 @@ void ImGui::EndMenuBar()
 | 
				
			|||||||
    IM_ASSERT(window->Flags & ImGuiWindowFlags_MenuBar);
 | 
					    IM_ASSERT(window->Flags & ImGuiWindowFlags_MenuBar);
 | 
				
			||||||
    IM_ASSERT(window->DC.MenuBarAppending);
 | 
					    IM_ASSERT(window->DC.MenuBarAppending);
 | 
				
			||||||
    window->DC.MenuBarAppending = false;
 | 
					    window->DC.MenuBarAppending = false;
 | 
				
			||||||
 | 
					    PopClipRect();
 | 
				
			||||||
    ImGui::PopID();
 | 
					    ImGui::PopID();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user