This commit is contained in:
+8
-7
@@ -10377,9 +10377,15 @@ void ImGui::TabItemLabelAndCloseButton(ImDrawList* draw_list, const ImRect& bb,
|
|||||||
else
|
else
|
||||||
close_button_visible = (g.Style.TabCloseButtonMinWidthUnselected < 0.0f) ? true : (is_hovered && bb.GetWidth() >= ImMax(button_sz, g.Style.TabCloseButtonMinWidthUnselected));
|
close_button_visible = (g.Style.TabCloseButtonMinWidthUnselected < 0.0f) ? true : (is_hovered && bb.GetWidth() >= ImMax(button_sz, g.Style.TabCloseButtonMinWidthUnselected));
|
||||||
}
|
}
|
||||||
bool unsaved_marker_visible = (flags & ImGuiTabItemFlags_UnsavedDocument) != 0 && (button_pos.x + button_sz <= bb.Max.x);
|
|
||||||
|
|
||||||
if (close_button_visible)
|
// When tabs/document is unsaved, the unsaved marker takes priority over the close button.
|
||||||
|
const bool unsaved_marker_visible = (flags & ImGuiTabItemFlags_UnsavedDocument) != 0 && (button_pos.x + button_sz <= bb.Max.x) && (!close_button_visible || !is_hovered);
|
||||||
|
if (unsaved_marker_visible)
|
||||||
|
{
|
||||||
|
const ImRect bullet_bb(button_pos, button_pos + ImVec2(button_sz, button_sz));
|
||||||
|
RenderBullet(draw_list, bullet_bb.GetCenter(), GetColorU32(ImGuiCol_Text));
|
||||||
|
}
|
||||||
|
else if (close_button_visible)
|
||||||
{
|
{
|
||||||
ImGuiLastItemData last_item_backup = g.LastItemData;
|
ImGuiLastItemData last_item_backup = g.LastItemData;
|
||||||
if (CloseButton(close_button_id, button_pos))
|
if (CloseButton(close_button_id, button_pos))
|
||||||
@@ -10390,11 +10396,6 @@ void ImGui::TabItemLabelAndCloseButton(ImDrawList* draw_list, const ImRect& bb,
|
|||||||
if (is_hovered && !(flags & ImGuiTabItemFlags_NoCloseWithMiddleMouseButton) && IsMouseClicked(2))
|
if (is_hovered && !(flags & ImGuiTabItemFlags_NoCloseWithMiddleMouseButton) && IsMouseClicked(2))
|
||||||
close_button_pressed = true;
|
close_button_pressed = true;
|
||||||
}
|
}
|
||||||
else if (unsaved_marker_visible)
|
|
||||||
{
|
|
||||||
const ImRect bullet_bb(button_pos, button_pos + ImVec2(button_sz, button_sz));
|
|
||||||
RenderBullet(draw_list, bullet_bb.GetCenter(), GetColorU32(ImGuiCol_Text));
|
|
||||||
}
|
|
||||||
|
|
||||||
// This is all rather complicated
|
// This is all rather complicated
|
||||||
// (the main idea is that because the close button only appears on hover, we don't want it to alter the ellipsis position)
|
// (the main idea is that because the close button only appears on hover, we don't want it to alter the ellipsis position)
|
||||||
|
|||||||
Reference in New Issue
Block a user