Skip to content

Commit

Permalink
Tables, MultiSelect: Fixed an issue where column width may be mismeas…
Browse files Browse the repository at this point in the history
…ured when calling BeginMultiSelect() while inside a table. (ocornut#8250)
  • Loading branch information
ocornut authored and matthew-mccall committed Jan 1, 2025
1 parent 6e1e641 commit 0617487
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
2 changes: 2 additions & 0 deletions docs/CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ Other changes:
value is being modified. (#8242)
- InputText: Added sanity check to detect some cases of passing a non
zero-terminated input buffer.
- Tables, MultiSelect: Fixed an issue where column width may be mismeasured
when calling BeginMultiSelect() while inside a table. (#8250)
- Drags: Added ImGuiSliderFlags_NoSpeedTweaks flag to disable keyboard
modifiers altering the tweak speed. Useful if you want to alter tweak speed
yourself based on your own logic. (#8223)
Expand Down
2 changes: 1 addition & 1 deletion imgui.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
// Library Version
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
#define IMGUI_VERSION "1.91.7 WIP"
#define IMGUI_VERSION_NUM 19162
#define IMGUI_VERSION_NUM 19163
#define IMGUI_HAS_TABLE

/*
Expand Down
6 changes: 6 additions & 0 deletions imgui_widgets.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7518,6 +7518,12 @@ ImGuiMultiSelectIO* ImGui::BeginMultiSelect(ImGuiMultiSelectFlags flags, int sel
if (flags & ImGuiMultiSelectFlags_BoxSelect2d)
flags &= ~ImGuiMultiSelectFlags_BoxSelect1d;

// FIXME: Workaround to the fact we override CursorMaxPos, meaning size measurement are lost. (#8250)
// They should perhaps be stacked properly?
if (ImGuiTable* table = g.CurrentTable)
if (table->CurrentColumn != -1)
TableEndCell(table); // This is currently safe to call multiple time. If that properly is lost we can extract the "save measurement" part of it.

// FIXME: BeginFocusScope()
const ImGuiID id = window->IDStack.back();
ms->Clear();
Expand Down

0 comments on commit 0617487

Please sign in to comment.