From 01380c579715e62fb9a8d6ec0502c4ea83bfde6e Mon Sep 17 00:00:00 2001 From: ocornut Date: Sat, 25 Jul 2026 12:47:56 +0200 Subject: [PATCH] Version 1.92.9 --- docs/CHANGELOG.txt | 87 ++++++++++++++++++++++++---------------------- imgui.cpp | 2 +- imgui.h | 6 ++-- imgui_demo.cpp | 2 +- imgui_draw.cpp | 2 +- imgui_internal.h | 2 +- imgui_tables.cpp | 2 +- imgui_widgets.cpp | 2 +- 8 files changed, 54 insertions(+), 51 deletions(-) diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index 0074103db..a3e036018 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -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 diff --git a/imgui.cpp b/imgui.cpp index 2eab3aae3..2c536fa8f 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.92.9 WIP +// dear imgui, v1.92.9 // (main code and documentation) // Help: diff --git a/imgui.h b/imgui.h index 918d253d2..da664cb8e 100644 --- a/imgui.h +++ b/imgui.h @@ -1,4 +1,4 @@ -// dear imgui, v1.92.9 WIP +// dear imgui, v1.92.9 // (headers) // Help: @@ -29,8 +29,8 @@ // Library Version // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345') -#define IMGUI_VERSION "1.92.9 WIP" -#define IMGUI_VERSION_NUM 19287 +#define IMGUI_VERSION "1.92.9" +#define IMGUI_VERSION_NUM 19290 #define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000 #define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198 diff --git a/imgui_demo.cpp b/imgui_demo.cpp index 27413b7aa..f9b3d0108 100644 --- a/imgui_demo.cpp +++ b/imgui_demo.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.92.9 WIP +// dear imgui, v1.92.9 // (demo code) // Help: diff --git a/imgui_draw.cpp b/imgui_draw.cpp index 6ec7478b9..acf377c55 100644 --- a/imgui_draw.cpp +++ b/imgui_draw.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.92.9 WIP +// dear imgui, v1.92.9 // (drawing and font code) /* diff --git a/imgui_internal.h b/imgui_internal.h index 584914fc4..1a9369aa0 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -1,4 +1,4 @@ -// dear imgui, v1.92.9 WIP +// dear imgui, v1.92.9 // (internal structures/api) // You may use this file to debug, understand or extend Dear ImGui features but we don't provide any guarantee of forward compatibility. diff --git a/imgui_tables.cpp b/imgui_tables.cpp index efc03d7d9..43b5cd5a7 100644 --- a/imgui_tables.cpp +++ b/imgui_tables.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.92.9 WIP +// dear imgui, v1.92.9 // (tables and columns code) /* diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index efd3a64ff..6c324e7b0 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.92.9 WIP +// dear imgui, v1.92.9 // (widgets code) /*