mirror of
https://github.com/ocornut/imgui.git
synced 2024-11-12 02:00:58 +01:00
ProgressBar: Fixed passing fraction==NaN from leading to a crash. (#7451)
This commit is contained in:
parent
9638c2839a
commit
25a492f330
@ -70,6 +70,7 @@ Other changes:
|
|||||||
frames would erroneously close the window. While it is technically a popup issue
|
frames would erroneously close the window. While it is technically a popup issue
|
||||||
it would generally manifest when fast moving the mouse bottom to top in a sub-menu.
|
it would generally manifest when fast moving the mouse bottom to top in a sub-menu.
|
||||||
(#7325, #7287, #7063)
|
(#7325, #7287, #7063)
|
||||||
|
- ProgressBar: Fixed passing fraction==NaN from leading to a crash. (#7451)
|
||||||
- Style: Added ImGuiStyleVar_TabBorderSize, ImGuiStyleVar_TableAngledHeadersAngle for
|
- Style: Added ImGuiStyleVar_TabBorderSize, ImGuiStyleVar_TableAngledHeadersAngle for
|
||||||
consistency. (#7411) [@cfillion]
|
consistency. (#7411) [@cfillion]
|
||||||
- DrawList: Added AddConcavePolyFilled(), PathFillConcave() concave filling. (#760) [@thedmd]
|
- DrawList: Added AddConcavePolyFilled(), PathFillConcave() concave filling. (#760) [@thedmd]
|
||||||
|
@ -1288,12 +1288,15 @@ void ImGui::ProgressBar(float fraction, const ImVec2& size_arg, const char* over
|
|||||||
if (!ItemAdd(bb, 0))
|
if (!ItemAdd(bb, 0))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Render
|
// Out of courtesy we accept a NaN fraction without crashing
|
||||||
fraction = ImSaturate(fraction);
|
fraction = ImSaturate(fraction);
|
||||||
|
const float fraction_not_nan = (fraction == fraction) ? fraction : 0.0f;
|
||||||
|
|
||||||
|
// Render
|
||||||
RenderFrame(bb.Min, bb.Max, GetColorU32(ImGuiCol_FrameBg), true, style.FrameRounding);
|
RenderFrame(bb.Min, bb.Max, GetColorU32(ImGuiCol_FrameBg), true, style.FrameRounding);
|
||||||
bb.Expand(ImVec2(-style.FrameBorderSize, -style.FrameBorderSize));
|
bb.Expand(ImVec2(-style.FrameBorderSize, -style.FrameBorderSize));
|
||||||
const ImVec2 fill_br = ImVec2(ImLerp(bb.Min.x, bb.Max.x, fraction), bb.Max.y);
|
const ImVec2 fill_br = ImVec2(ImLerp(bb.Min.x, bb.Max.x, fraction_not_nan), bb.Max.y);
|
||||||
RenderRectFilledRangeH(window->DrawList, bb, GetColorU32(ImGuiCol_PlotHistogram), 0.0f, fraction, style.FrameRounding);
|
RenderRectFilledRangeH(window->DrawList, bb, GetColorU32(ImGuiCol_PlotHistogram), 0.0f, fraction_not_nan, style.FrameRounding);
|
||||||
|
|
||||||
// Default displaying the fraction as percentage string, but user can override it
|
// Default displaying the fraction as percentage string, but user can override it
|
||||||
char overlay_buf[32];
|
char overlay_buf[32];
|
||||||
|
Loading…
Reference in New Issue
Block a user