|
|
|
|
@@ -36,38 +36,32 @@ HOW TO UPDATE?
|
|
|
|
|
- Please report any issue!
|
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
VERSION 1.92.9 WIP (In Progress)
|
|
|
|
|
VERSION 1.92.9 (Released 2026-07-25)
|
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.92.8
|
|
|
|
|
|
|
|
|
|
Breaking Changes:
|
|
|
|
|
|
|
|
|
|
- TreeNode: commented out legacy name `ImGuiTreeNodeFlags_SpanTextWidth` which
|
|
|
|
|
was obsoleted in 1.90.7 (May 2024). Use `ImGuiTreeNodeFlags_SpanLabelWidth`.
|
|
|
|
|
- ColorEdit: obsoleted SetColorEditOptions() function added in 1.51 (June 2017) in
|
|
|
|
|
of directly poking to io.ConfigColorEditFlags. More consistent and easier to discover.
|
|
|
|
|
- Drag and Drop: commented out legacy name `ImGuiDragDropFlags_SourceAutoExpirePayload`
|
|
|
|
|
which obsoleted in 1.90.9 (July 2024). Use `ImGuiDragDropFlags_PayloadAutoExpire`.
|
|
|
|
|
- DragXXX, SliderXXX, InputScalar: with `ImGuiItemFlags_LiveEditOnInputScalar` now
|
|
|
|
|
defaulting to being disabled: inputting a value with the keyboard doesn't write
|
|
|
|
|
intermediate values to the backing variable. (#9476)
|
|
|
|
|
Before: DragFloat() with user typing "123" --> write back 1, then 12, then 123.
|
|
|
|
|
After: DragFloat() with user typing "123" --> write back 123 when validated/unfocused.
|
|
|
|
|
You can enable the flag back for a given scope if needed by specific widget/behavior.
|
|
|
|
|
Read below for details.
|
|
|
|
|
- TreeNode: commented out legacy name `ImGuiTreeNodeFlags_SpanTextWidth` which
|
|
|
|
|
was obsoleted in 1.90.7 (May 2024). Use `ImGuiTreeNodeFlags_SpanLabelWidth`.
|
|
|
|
|
- ColorEdit: obsoleted SetColorEditOptions() function added in 1.51 (June 2017) in favor
|
|
|
|
|
of directly poking to io.ConfigColorEditFlags. More consistent and easier to discover.
|
|
|
|
|
- Drag and Drop: commented out legacy name `ImGuiDragDropFlags_SourceAutoExpirePayload`
|
|
|
|
|
which obsoleted in 1.90.9 (July 2024). Use `ImGuiDragDropFlags_PayloadAutoExpire`.
|
|
|
|
|
- ImDrawData: marked `CmdListsCount` as obsolete (technically was obsoleted in 1.89.8).
|
|
|
|
|
Before: `draw_data->CmdListsCount`, After: `draw_data->CmdLists.Size`.
|
|
|
|
|
|
|
|
|
|
Other Changes:
|
|
|
|
|
|
|
|
|
|
- Windows:
|
|
|
|
|
- Clicking on a window's empty-space to move/focus a window checks
|
|
|
|
|
for lack of mouse button ownership. This gives an additional opportunity
|
|
|
|
|
for user code to bypass it without using a clickable item. (#9382)
|
|
|
|
|
- Clicking on a window's empty-space to move/focus a window checks
|
|
|
|
|
for lack of queued focus request. (#9382)
|
|
|
|
|
- Fixed double-click collapse toggle not owning the mouse button. If a
|
|
|
|
|
`SetNextWindowPos()` with pivot was queued in the same frame, the second
|
|
|
|
|
click could trigger another item in the same window. (#9439) [@Cleroth]
|
|
|
|
|
- Added `ImGuiItemFlags_LiveEditOnInputText` and `ImGuiItemFlags_LiveEditOnInputScalar`
|
|
|
|
|
- LiveEdit on/off: added `ImGuiItemFlags_LiveEditOnInputText` and `ImGuiItemFlags_LiveEditOnInputScalar`
|
|
|
|
|
flags to configure the timing of applying edits of backing variables when typing
|
|
|
|
|
values using a keyboard.
|
|
|
|
|
(#9476, #701, #3936, #3946, #5904, #6284, #8149, #8065, #8665, #9117, #9299, #700, #1351,
|
|
|
|
|
@@ -106,13 +100,22 @@ Other Changes:
|
|
|
|
|
- We intentionally are not adding `io.ConfigLiveEditXXX` fields to dictate the
|
|
|
|
|
default value of each `ImGuiItemFlags_LiveEditXXX`, because this is not expected
|
|
|
|
|
to be a user preference but a programmer/widget preferences.
|
|
|
|
|
Also, we strive to make the toolkit consistent.
|
|
|
|
|
And we strive to make the toolkit consistent.
|
|
|
|
|
- Windows:
|
|
|
|
|
- Clicking on a window's empty-space to move/focus a window checks
|
|
|
|
|
for lack of mouse button ownership. This gives an additional opportunity
|
|
|
|
|
for user code to bypass it without using a clickable item. (#9382)
|
|
|
|
|
- Clicking on a window's empty-space to move/focus a window checks
|
|
|
|
|
for lack of queued focus request. (#9382)
|
|
|
|
|
- Fixed double-click collapse toggle not owning the mouse button. If a
|
|
|
|
|
`SetNextWindowPos()` with pivot was queued in the same frame, the second
|
|
|
|
|
click could trigger another item in the same window. (#9439) [@Cleroth]
|
|
|
|
|
- Popups:
|
|
|
|
|
- Added bool return value to `OpenPopup()`, `OpenPopupOnItemClick()` functions
|
|
|
|
|
to notify when the popup was just opened. (#9429)
|
|
|
|
|
- InputText:
|
|
|
|
|
- Added `style.InputTextCursorSize` to configure cursor/caret thickness. (#7031, #9409)
|
|
|
|
|
This is automatically scaled by `style.ScaleAllSizes()`.
|
|
|
|
|
It is automatically scaled by `style.ScaleAllSizes()`.
|
|
|
|
|
- Reworked `io.ConfigInputTextEnterKeepActive` mode so that pressing
|
|
|
|
|
Ctrl+Enter or Shift+Enter still allows to deactivate. (#9239)
|
|
|
|
|
- Tables:
|
|
|
|
|
@@ -135,9 +138,9 @@ Other Changes:
|
|
|
|
|
even when no sort marker is displayed. Auto-fitting a column still accounts
|
|
|
|
|
for the possible marker, so that sorting after an auto-fit doesn't clip the label.
|
|
|
|
|
- Multi-Select:
|
|
|
|
|
- Reworked ImGuiMultiSelectFlags_NoAutoSelect as it carried side-effects that
|
|
|
|
|
- Reworked `ImGuiMultiSelectFlags_NoAutoSelect` as it carried side-effects that
|
|
|
|
|
were hardcoded/designed to use multi-selection on checkboxes. (#9391)
|
|
|
|
|
Specifically removed those undocumented behaviors from _NoAutoSelect:
|
|
|
|
|
Specifically removed those undocumented behaviors from `_NoAutoSelect`:
|
|
|
|
|
- Clicking a selected/checked item always unselect/uncheck.
|
|
|
|
|
- Shift+Click inverts targets value and copy to range.
|
|
|
|
|
- Shift+Keyboard copy selection source value to range.
|
|
|
|
|
@@ -146,27 +149,27 @@ Other Changes:
|
|
|
|
|
- Added `IMGUI_DISABLE_DEFAULT_FONT_BITMAP`/`IMGUI_DISABLE_DEFAULT_FONT_VECTOR` to
|
|
|
|
|
disable embedding either fonts separately. (#9407)
|
|
|
|
|
- Tweak `CalcTextSize()` awkward width rounding/ceiling code to reduce floating-point
|
|
|
|
|
imprecisions altering the result by 1 even at relatively small width. (#791)
|
|
|
|
|
- Better document the fact that ImFontAtlas::Clear()/ClearFonts() functions are
|
|
|
|
|
precision issues altering the result by 1 even at relatively small width. (#791)
|
|
|
|
|
- Better document the fact that `ImFontAtlas::Clear()`/`ClearFonts()` functions are
|
|
|
|
|
unlikely to be useful nowadays. Better recover to an edge case of mistakenly
|
|
|
|
|
calling ClearFonts() during rendering.
|
|
|
|
|
calling `ClearFonts()` during rendering.
|
|
|
|
|
- Fixed an issue where passing a manually created ImFontAtlas to CreateContext() would
|
|
|
|
|
incorrectly destroy it in DestroyContext() when ref-count gets back to zero. (#9426)
|
|
|
|
|
- Destroying an ImGui context using a ImFontAtlas checks that the later has no references.
|
|
|
|
|
incorrectly destroy it in `DestroyContext()` when ref-count gets back to zero. (#9426)
|
|
|
|
|
- Destroying an ImGui context using a `ImFontAtlas` checks that the later has no references.
|
|
|
|
|
- Nav:
|
|
|
|
|
- Fixed context menu activation with gamepad erroneously testing for _NavEnableKeyboard
|
|
|
|
|
instead of _NavEnableGamepad. (#9454, #8803, #9270) [@Clownacy]
|
|
|
|
|
- TreeNode:
|
|
|
|
|
- Fixed nav cursor rendering with rounding even though tree nodes don't have it. (#7589)
|
|
|
|
|
- Inputs:
|
|
|
|
|
- Added GetItemClickedCountWithSingleClickDelay() helper for easy disambiguation
|
|
|
|
|
- Added `GetItemClickedCountWithSingleClickDelay()` helper for easy disambiguation
|
|
|
|
|
between single-click and double-click for actions that needs single-click to do
|
|
|
|
|
something other than selection. (#8337)
|
|
|
|
|
- Returns 1 on single-click but delayed by io.MouseSingleClickDelay.
|
|
|
|
|
- Returns 2 on double-click, and 2+ on subsequent repeated cicks.
|
|
|
|
|
- Added io.MouseSingleClickDelay to configure default delayed single click delay when
|
|
|
|
|
using GetItemClickedCountWithSingleClickDelay() or IsMouseReleasedWithDelay(). (#8337)
|
|
|
|
|
Note that io.MouseSingleClickDelay is always > io.MouseDoubleClickTime.
|
|
|
|
|
- Returns 2 on double-click, and 2+ on subsequent repeated clicks.
|
|
|
|
|
- Added `io.MouseSingleClickDelay` to configure default delayed single click delay when
|
|
|
|
|
using `GetItemClickedCountWithSingleClickDelay()` or `IsMouseReleasedWithDelay()`. (#8337)
|
|
|
|
|
Note that `io.MouseSingleClickDelay` is always `> io.MouseDoubleClickTime`.
|
|
|
|
|
- ColorEdit:
|
|
|
|
|
- Added `io.ConfigColorEditFlags` to read/modify current color edit/picker settings.
|
|
|
|
|
- ColorPicker: added `ImGuiColorEditFlags_PickerNoRotate` to disable rotation of the
|
|
|
|
|
@@ -182,13 +185,13 @@ Other Changes:
|
|
|
|
|
- Settings:
|
|
|
|
|
- Windows/Tables settings entries can now record the last used date in YYYYMMDD format,
|
|
|
|
|
allowing tools to run to e.g. delete entries that haven't been used in X months. (#9460)
|
|
|
|
|
- Added bool io.ConfigIniSettingsSaveLastUsedDate to disable saving that info. (#9460)
|
|
|
|
|
- Added int io.ConfigIniSettingsAutoDiscardMonths to enable a mode where unused settings
|
|
|
|
|
- Added `bool io.ConfigIniSettingsSaveLastUsedDate` to disable saving that info. (#9460)
|
|
|
|
|
- Added `int io.ConfigIniSettingsAutoDiscardMonths` to enable a mode where unused settings
|
|
|
|
|
are automatically discard after xx months. (#9460)
|
|
|
|
|
- Added a trimming tool under Metrics->Settings, along with a yet-unexposed function.
|
|
|
|
|
- The current system date is fed through ImGuiPlatformIO::Platform_SessionDate,
|
|
|
|
|
- The current system date is fed through `ImGuiPlatformIO::Platform_SessionDate`,
|
|
|
|
|
which is automatically set by a call to time() done during context creation. (#9460)
|
|
|
|
|
- Added IMGUI_DISABLE_TIME_FUNCTIONS to disable setting platform_io.Platform_SessionDate.
|
|
|
|
|
- Added `IMGUI_DISABLE_TIME_FUNCTIONS` to disable setting platform_io.Platform_SessionDate.
|
|
|
|
|
A custom backend may still set it manually. (#9460)
|
|
|
|
|
- DrawList:
|
|
|
|
|
- Minor optimization to `AddLine()`, `AddLineH()`, `AddLineV()` functions. (#4091)
|
|
|
|
|
@@ -197,24 +200,24 @@ Other Changes:
|
|
|
|
|
- Demo:
|
|
|
|
|
- Extract 'Widgets->Tree Nodes->Selectable Nodes' out of the 'Advanced'
|
|
|
|
|
demo for clarity (manual reimplementation of basic selection).
|
|
|
|
|
- Misc:
|
|
|
|
|
- Added IM_DEBUG_BREAK() handler for GCC+AArch64/ARM64. [@tom-seddon]
|
|
|
|
|
- Debug Tools:
|
|
|
|
|
- Added `IM_DEBUG_BREAK()` handler for GCC+AArch64/ARM64. [@tom-seddon]
|
|
|
|
|
- Backends:
|
|
|
|
|
- Android:
|
|
|
|
|
- Clear mouse position on touch release (AMOTION_EVENT_ACTION_UP) to prevent
|
|
|
|
|
- Clear mouse position on touch release (`AMOTION_EVENT_ACTION_UP`) to prevent
|
|
|
|
|
items from staying in hovered state. (#6627, #9474) [@Turtle-PB]
|
|
|
|
|
- Metal4:
|
|
|
|
|
- Added new Metal 4 backend (forked from Metal 3 backend). (#9458, #9451) [@AmelieHeinrich]
|
|
|
|
|
- Added Metal-cpp support enabled with `IMGUI_IMPL_METAL_CPP` define. (#9461) [@MERL10N]
|
|
|
|
|
- OpenGL2:
|
|
|
|
|
- Backup and restore GL_UNPACK_ROW_LENGTH and GL_UNPACK_ALIGNMENT when updating texture
|
|
|
|
|
- Backup and restore `GL_UNPACK_ROW_LENGTH` and `GL_UNPACK_ALIGNMENT` when updating texture
|
|
|
|
|
to avoid altering caller GL state. (#8802, #9473) [@Turtle-PB]
|
|
|
|
|
- OpenGL3:
|
|
|
|
|
- GLSL version detection assume GLSL 410 when GL context is 4.1.
|
|
|
|
|
Fixes an issue running on macOS with Wine. [#9427, #6577) [@perminovVS]
|
|
|
|
|
- Expose selected render state in ImGui_ImplOpenGL3_RenderState, allowing to
|
|
|
|
|
dynamically select between use of glBindSampler() and glTexParameter(). (#9378)
|
|
|
|
|
- Backup and restore GL_UNPACK_ROW_LENGTH and GL_UNPACK_ALIGNMENT when updating texture
|
|
|
|
|
- Expose selected render state in `ImGui_ImplOpenGL3_RenderState`, allowing to
|
|
|
|
|
dynamically select between use of `glBindSampler()` and `glTexParameter()`. (#9378)
|
|
|
|
|
- Backup and restore `GL_UNPACK_ROW_LENGTH` and `GL_UNPACK_ALIGNMENT` when updating texture
|
|
|
|
|
to avoid altering caller GL state. (#8802, #9473) [@Turtle-PB]
|
|
|
|
|
- SDL2:
|
|
|
|
|
- Restore SDL_StartTextInput()/SDL_StopTextInput() in IME handler for on-screen keyboard
|
|
|
|
|
|