|
|
|
@ -9187,10 +9187,12 @@ bool ImGui::BeginMenuBar() |
|
|
|
|
if (!(window->Flags & ImGuiWindowFlags_MenuBar)) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
ImGuiContext& g = *GImGui; |
|
|
|
|
IM_ASSERT(!window->DC.MenuBarAppending); |
|
|
|
|
BeginGroup(); // Save position
|
|
|
|
|
PushID("##menubar"); |
|
|
|
|
ImRect rect = window->MenuBarRect(); |
|
|
|
|
rect.Max.x = ImMax(rect.Min.x, rect.Max.x - g.Style.WindowRounding); |
|
|
|
|
PushClipRect(ImVec2(ImFloor(rect.Min.x+0.5f), ImFloor(rect.Min.y + window->BorderSize + 0.5f)), ImVec2(ImFloor(rect.Max.x+0.5f), ImFloor(rect.Max.y+0.5f)), false); |
|
|
|
|
window->DC.CursorPos = ImVec2(rect.Min.x + window->DC.MenuBarOffsetX, rect.Min.y);// + g.Style.FramePadding.y);
|
|
|
|
|
window->DC.LayoutType = ImGuiLayoutType_Horizontal; |
|
|
|
@ -9241,6 +9243,7 @@ bool ImGui::BeginMenu(const char* label, bool enabled) |
|
|
|
|
{ |
|
|
|
|
// Menu inside an horizontal menu bar
|
|
|
|
|
// Selectable extend their highlight by half ItemSpacing in each direction.
|
|
|
|
|
// For ChildMenu, the popup position will be overwritten by the call to FindBestPopupWindowPos() in Begin()
|
|
|
|
|
popup_pos = ImVec2(pos.x - window->WindowPadding.x, pos.y - style.FramePadding.y + window->MenuBarHeight()); |
|
|
|
|
window->DC.CursorPos.x += (float)(int)(style.ItemSpacing.x * 0.5f); |
|
|
|
|
PushStyleVar(ImGuiStyleVar_ItemSpacing, style.ItemSpacing * 2.0f); |
|
|
|
|