mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-25 21:17:01 +00:00
ListBox/InputTextMultiline: Better optimized when clipped / non-visible.
This commit is contained in:
parent
62084aac0f
commit
29d38b59d0
@ -54,6 +54,8 @@ Other Changes:
|
|||||||
from using style.ItemSpacing.x to style.ItemInnerSpacing.x, the later being expected to be smaller. (#1086)
|
from using style.ItemSpacing.x to style.ItemInnerSpacing.x, the later being expected to be smaller. (#1086)
|
||||||
- RadioButton: Fixed label horizontal alignment to precisely match Checkbox().
|
- RadioButton: Fixed label horizontal alignment to precisely match Checkbox().
|
||||||
- Window: When resizing from an edge, the border is more visible and better follow the rounded corners.
|
- Window: When resizing from an edge, the border is more visible and better follow the rounded corners.
|
||||||
|
- ListBox: Better optimized when clipped / non-visible.
|
||||||
|
- InputTextMultiline: Better optimized when clipped / non-visible.
|
||||||
- ImDrawList: Fixed AddCircle(), AddCircleFilled() angle step being off, which was visible when drawing a "circle"
|
- ImDrawList: Fixed AddCircle(), AddCircleFilled() angle step being off, which was visible when drawing a "circle"
|
||||||
with a small number of segments (e.g. an hexagon). (#2287) [@baktery]
|
with a small number of segments (e.g. an hexagon). (#2287) [@baktery]
|
||||||
- ImGuiTextBuffer: Added append() function (unformatted).
|
- ImGuiTextBuffer: Added append() function (unformatted).
|
||||||
|
@ -3138,7 +3138,12 @@ bool ImGui::InputTextEx(const char* label, char* buf, int buf_size, const ImVec2
|
|||||||
ImGuiWindow* draw_window = window;
|
ImGuiWindow* draw_window = window;
|
||||||
if (is_multiline)
|
if (is_multiline)
|
||||||
{
|
{
|
||||||
ItemAdd(total_bb, id, &frame_bb);
|
if (!ItemAdd(total_bb, id, &frame_bb))
|
||||||
|
{
|
||||||
|
ItemSize(total_bb, style.FramePadding.y);
|
||||||
|
EndGroup();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
if (!BeginChildFrame(id, frame_bb.GetSize()))
|
if (!BeginChildFrame(id, frame_bb.GetSize()))
|
||||||
{
|
{
|
||||||
EndChildFrame();
|
EndChildFrame();
|
||||||
@ -5122,6 +5127,13 @@ bool ImGui::ListBoxHeader(const char* label, const ImVec2& size_arg)
|
|||||||
ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f));
|
ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f));
|
||||||
window->DC.LastItemRect = bb; // Forward storage for ListBoxFooter.. dodgy.
|
window->DC.LastItemRect = bb; // Forward storage for ListBoxFooter.. dodgy.
|
||||||
|
|
||||||
|
if (!IsRectVisible(bb.Min, bb.Max))
|
||||||
|
{
|
||||||
|
ItemSize(bb.GetSize(), style.FramePadding.y);
|
||||||
|
ItemAdd(bb, 0, &frame_bb);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
BeginGroup();
|
BeginGroup();
|
||||||
if (label_size.x > 0)
|
if (label_size.x > 0)
|
||||||
RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label);
|
RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label);
|
||||||
|
Loading…
Reference in New Issue
Block a user