Version 1.92.7

This commit is contained in:
ocornut
2026-04-02 19:22:53 +02:00
parent 45866bea47
commit dac07199cf
8 changed files with 55 additions and 53 deletions
+46 -44
View File
@@ -36,12 +36,14 @@ HOW TO UPDATE?
- Please report any issue! - Please report any issue!
----------------------------------------------------------------------- -----------------------------------------------------------------------
VERSION 1.92.7 WIP (In Progress) VERSION 1.92.7 (Released 2026-04-02)
----------------------------------------------------------------------- -----------------------------------------------------------------------
Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.92.7
Breaking Changes: Breaking Changes:
- Separator(): fixed a legacy quirk where Separator() was submitting a zero-height - Separator: fixed a legacy quirk where `Separator()` was submitting a zero-height
item for layout purpose, even though it draws a 1-pixel separator. item for layout purpose, even though it draws a 1-pixel separator.
The fix could affect code e.g. computing height from multiple widgets in order to The fix could affect code e.g. computing height from multiple widgets in order to
allocate vertical space for a footer or multi-line status bar. (#2657, #9263) allocate vertical space for a footer or multi-line status bar. (#2657, #9263)
@@ -53,18 +55,18 @@ Breaking Changes:
BeginChild("ScrollingRegion", { 0, -footer_height }); BeginChild("ScrollingRegion", { 0, -footer_height });
When such idiom was used and assuming zero-height Separator, it is likely that When such idiom was used and assuming zero-height Separator, it is likely that
in 1.92.7 the resulting window will have unexpected 1 pixel scrolling range. in 1.92.7 the resulting window will have unexpected 1 pixel scrolling range.
- Multi-Select: renamed ImGuiMultiSelectFlags_SelectOnClick to ImGuiMultiSelectFlags_SelectOnAuto. - Multi-Select: renamed `ImGuiMultiSelectFlags_SelectOnClick` to `ImGuiMultiSelectFlags_SelectOnAuto`.
Kept inline redirection enum (will obsolete). Kept inline redirection enum (will obsolete).
- Combo(), ListBox(): commented out legacy signatures which were obsoleted in 1.90 - Combo(), ListBox(): commented out legacy signatures which were obsoleted in 1.90
(Nov 2023), when the getter callback type was changed from: (Nov 2023), when the getter callback type was changed from:
getter type: bool (*getter)(void* user_data, int idx, const char** out_text) bool (*getter)(void* user_data, int idx, const char** out_text)
To: To:
getter type: const char* (*getter)(void* user_data, int idx) const char* (*getter)(void* user_data, int idx)
Other Changes: Other Changes:
- TreeNode: - TreeNode:
- Moved TreeNodeGetOpen() helper to public API. I was hesitant to make this public - Moved `TreeNodeGetOpen()` helper to public API. I was hesitant to make this public
because I intend to provide a more generic and feature-full version, but in the meanwhile because I intend to provide a more generic and feature-full version, but in the meanwhile
this will do. (#3823, #9251, #7553, #6754, #5423, #2958, #2079, #1947, #1131, #722) this will do. (#3823, #9251, #7553, #6754, #5423, #2958, #2079, #1947, #1131, #722)
- In 'Demo->Property Editor' demonstrate a way to perform tree clipping by fast-forwarding - In 'Demo->Property Editor' demonstrate a way to perform tree clipping by fast-forwarding
@@ -73,13 +75,13 @@ Other Changes:
it was prior to 1.91. it was prior to 1.91.
- InputText: - InputText:
- Shift+Enter in multi-line editor always adds a new line, regardless of - Shift+Enter in multi-line editor always adds a new line, regardless of
ImGuiInputTextFlags_CtrlEnterForNewLine being set or not. (#9239) `ImGuiInputTextFlags_CtrlEnterForNewLine` being set or not. (#9239)
- Reworked io.ConfigInputTextEnterKeepActive mode so that pressing Enter will - Reworked `io.ConfigInputTextEnterKeepActive` mode so that pressing Enter will
deactivate/reactivate the item in order for e.g. IsItemDeactivatedAfterEdit() deactivate/reactivate the item in order for e.g. `IsItemDeactivatedAfterEdit()`
signals to be emitted the same way regardless of that setting. (#9001, #9115) signals to be emitted the same way regardless of that setting. (#9001, #9115)
- Fixed a glitch when using ImGuiInputTextFlags_ElideLeft where the local x offset - Fixed a glitch when using `ImGuiInputTextFlags_ElideLeft` where the local x offset
would be incorrect during the deactivation frame. (#9298) would be incorrect during the deactivation frame. (#9298)
- Fixed a crash introduced in 1.92.6 when handling ImGuiInputTextFlags_CallbackResize - Fixed a crash introduced in 1.92.6 when handling `ImGuiInputTextFlags_CallbackResize`
in certain situations. (#9174) in certain situations. (#9174)
- Fixed selection highlight Y1 offset being very slightly off (since 1.92.3). (#9311) [@v-ein] - Fixed selection highlight Y1 offset being very slightly off (since 1.92.3). (#9311) [@v-ein]
- InputTextMultiline: fixed an issue introduced in 1.92.3 where line count calculated - InputTextMultiline: fixed an issue introduced in 1.92.3 where line count calculated
@@ -89,18 +91,18 @@ Other Changes:
- InputTextMultiline: avoid going through reactivation code and fixed losing revert value - InputTextMultiline: avoid going through reactivation code and fixed losing revert value
when activating scrollbar. when activating scrollbar.
- InputTextMultiline: fixed an issue where edit buffer wouldn't be reapplied to back - InputTextMultiline: fixed an issue where edit buffer wouldn't be reapplied to back
buffer on the IsItemDeactivatedAfterEdit() frame. This could create issues when buffer on the `IsItemDeactivatedAfterEdit()` frame. This could create issues when
using the idiom of not applying edits before IsItemDeactivatedAfterEdit(). using the idiom of not applying edits before `IsItemDeactivatedAfterEdit()`.
(#9308, #8915, #8273) (#9308, #8915, #8273)
- Tables: - Tables:
- Allow reordering columns by dragging them in the context menu. (#9312) - Allow reordering columns by dragging them in the context menu. (#9312)
- Context menu now presents columns in display order. (#9312) - Context menu now presents columns in display order. (#9312)
- Fixed and clarified the behavior of using TableSetupScrollFreeze() with columns>1, - Fixed and clarified the behavior of using `TableSetupScrollFreeze()` with columns>1,
and where some of the columns within that range were Hidable. and where some of the columns within that range were Hidable.
- Before: TableSetupScrollFreeze(N, 0): include the N left-most visible columns as - Before: `TableSetupScrollFreeze(N, 0)`: include the N left-most visible columns as
part of the scroll freeze. So if you intentionally hide columns <N, the scroll part of the scroll freeze. So if you intentionally hide columns <N, the scroll
freeze area would start covering the subsequent/following columns (N+1) etc. freeze area would start covering the subsequent/following columns (N+1) etc.
- After: TableSetupScrollFreeze(N, 0): include the N left-most columns (regardless of visibility), - After: `TableSetupScrollFreeze(N, 0)`: include the N left-most columns (regardless of visibility),
as part of the scroll freeze. So if you intentionally hide columns <N, the scroll as part of the scroll freeze. So if you intentionally hide columns <N, the scroll
freeze area will cover less columns. freeze area will cover less columns.
- This is generally more sane and logical. - This is generally more sane and logical.
@@ -109,29 +111,29 @@ Other Changes:
- Angled Headers: angled section for column being reordered via the regular headers - Angled Headers: angled section for column being reordered via the regular headers
stays highlighted during reordering. stays highlighted during reordering.
- Style: - Style:
- Fonts: fixed an issue introduced in 1.92.6 where style.FontBaseSize would be - Fonts: fixed an issue introduced in 1.92.6 where `style.FontBaseSize` would be
cleared during the first frame if no fonts was explicitely added before. cleared during the first frame if no fonts was explicitly added before.
- Border sizes are now scaled (and rounded) by ScaleAllSizes(). - Border sizes are now scaled (and rounded) by `ScaleAllSizes()`.
- When using large values with ScallAllSizes(), the following items thickness - When using large values with `ScallAllSizes()`, the following items thickness
are scaled to integer amounts: are scaled to integer amounts:
- InputText Caret/cursor thickness. (#7031) - `InputText()` caret/cursor thickness. (#7031)
- CloseButton() thickness. - `CloseButton()` thickness.
- TextLink() underline thickness. - `TextLink()` underline thickness.
- ColorButton() border thickness. - `ColorButton()` border thickness.
- Separator() thickness, via scaling newly added style.SeparatorSize. (#2657, #9263) - `Separator()` thickness, via scaling newly added `style.SeparatorSize`. (#2657, #9263)
- Nav: - Nav:
- Popups: Shift+F10 or Menu key can now open popups menus when using
`BeginPopupContextItem()`, `BeginPopupContextWindow()` or `OpenPopupOnItemClick()`.
(#8803, #9270) [@exelix11, @ocornut]
- Changed Gamepad mapping for "Activate with Text Input" action: (#8803, #787) - Changed Gamepad mapping for "Activate with Text Input" action: (#8803, #787)
- Previously: press North button (PS4/PS5 triangle, Switch X, Xbox Y). - Previously: press North button (PS4/PS5 triangle, Switch X, Xbox Y).
- Now: long press (hold) Activate button (PS4/PS5 cross, Switch B, Xbox A) for ~0.60 secs. - Now: long press (hold) Activate button (PS4/PS5 cross, Switch B, Xbox A) for ~0.60 secs.
This is rarely used, somehow easier to discover, and frees a button for other uses. This is rarely used, somehow easier to discover, and frees a button for other uses.
See updated Gamepad Control Sheets: https://www.dearimgui.com/controls_sheets See updated Gamepad Control Sheets: https://www.dearimgui.com/controls_sheets
- Short Gamepad Activation press on InputText() always activate with Text Input mode. - Short Gamepad Activation press on InputText() always activate with Text Input mode.
- Popups: Shift+F10 or Menu key can now open popups menus when using
BeginPopupContextItem(), BeginPopupContextWindow() or OpenPopupOnItemClick().
(#8803, #9270) [@exelix11, @ocornut]
- Popups: pressing North button (PS4/PS5 triangle, SwitchX, Xbox Y) also open popups menus. - Popups: pressing North button (PS4/PS5 triangle, SwitchX, Xbox Y) also open popups menus.
- Multi-Select: - Multi-Select:
- Added ImGuiMultiSelectFlags_SelectOnClickAlways mode (rarely used). - Added `ImGuiMultiSelectFlags_SelectOnClickAlways` mode (rarely used).
This prevents Drag and Drop of multiple items, but it allows to start a new Box-Selection This prevents Drag and Drop of multiple items, but it allows to start a new Box-Selection
from inside an existing selection (Excel style). (#9307, #1861) from inside an existing selection (Excel style). (#9307, #1861)
- Clipper: - Clipper:
@@ -146,9 +148,9 @@ Other Changes:
mouse at the extreme of the screen will reach the scrollbar. (#9276) mouse at the extreme of the screen will reach the scrollbar. (#9276)
- Fixed an issue which could lead initial click to move the current scroll by a pixel. - Fixed an issue which could lead initial click to move the current scroll by a pixel.
- Button: - Button:
- Moved ImGuiButtonFlags_AllowOverlap from imgui_internal.h to imgui.h, - Moved `ImGuiButtonFlags_AllowOverlap` from imgui_internal.h to imgui.h,
as a convenience for when using e.g. InvisibleButton(). as a convenience for when using e.g. `InvisibleButton()`.
- Focus: fixed fallback "Debug" window temporarily taking focus and setting io.WantCaptureKeyboard - Focus: fixed fallback "Debug" window temporarily taking focus and setting `io.WantCaptureKeyboard`
for one frame on e.g. application boot if no other windows are submitted. (#9243) for one frame on e.g. application boot if no other windows are submitted. (#9243)
- DrawList: - DrawList:
- PathArcTo(): fixed erroneous segment count for pathologically small arcs on large - PathArcTo(): fixed erroneous segment count for pathologically small arcs on large
@@ -157,26 +159,26 @@ Other Changes:
- Discard/GC of ImDrawList buffers for unused windows favor restoring them to - Discard/GC of ImDrawList buffers for unused windows favor restoring them to
~Size*1.05 instead of Capacity when awakening again. Facilitate releasing ImDrawList ~Size*1.05 instead of Capacity when awakening again. Facilitate releasing ImDrawList
buffers after unusual usage spike. (#9303) buffers after unusual usage spike. (#9303)
- Fixed GetForegroundDrawList()/GetBackgroundDrawList() per-viewport buffers not being - Fixed `GetForegroundDrawList()`/`GetBackgroundDrawList()` per-viewport buffers not being
collected when unused for io.ConfigMemoryCompactTimer amount of time. (#9303) collected when unused for `io.ConfigMemoryCompactTimer` amount of time. (#9303)
- Demo: fixed IMGUI_DEMO_MARKER locations for examples applets. (#9261, #3689) [@pthom] - Demo: fixed `IMGUI_DEMO_MARKER` locations for examples applets. (#9261, #3689) [@pthom]
- Misc: added missing ImVec2/ImVec4 operators. (#9339, #8258) [@dkosmari, @ArashPartow] - Misc: added missing ImVec2/ImVec4 operators. (#9339, #8258) [@dkosmari, @ArashPartow]
- Internals: - Internals:
- ButtonBehavior: fixed internal/low-level ImGuiButtonFlags_PressedOnRelease - ButtonBehavior: fixed internal/low-level `ImGuiButtonFlags_PressedOnRelease`
(as well as equivalent ImGuiSelectableFlags_SelectOnRelease for Selectable) from (as well as equivalent `ImGuiSelectableFlags_SelectOnRelease` for Selectable) from
not taking current active id. ImGuiButtonFlags_NoHoldingActiveID allows that. not taking current active id. `ImGuiButtonFlags_NoHoldingActiveID` allows that.
This was pretty sure only used internally by MenuItem(). This was only used internally by MenuItem().
- Backends: - Backends:
- DirectX9, OpenGL2, OpenGL3, Metal, SDLGPU3, SDLRenderer2, SDLRenderer3: fixed easy-to-fix - DirectX9, OpenGL2, OpenGL3, Metal, SDLGPU3, SDLRenderer2, SDLRenderer3: fixed easy-to-fix
issues in code assuming ImTextureID_Invalid is always defined to 0. (#9295, #9310) issues in code assuming ImTextureID_Invalid is always defined to 0. (#9295, #9310)
- GLFW: mouse cursor is properly restored if changed by user app/code while using - GLFW: mouse cursor is properly restored if changed by user app/code while using
glfwSetInputMode(..., GLFW_CURSOR_DISABLED) or ImGuiConfigFlags_NoMouseCursorChange. `glfwSetInputMode(..., GLFW_CURSOR_DISABLED)` or `ImGuiConfigFlags_NoMouseCursorChange`.
Amend optimization done in 1.92.6. Amend optimization done in 1.92.6.
- SDLGPU3: removed unnecessary call to SDL_WaitForGPUIdle when releasing - SDLGPU3: removed unnecessary call to `SDL_WaitForGPUIdle()` when releasing
vertex/index buffers. (#9262) [@jaenis] vertex/index buffers. (#9262) [@jaenis]
- WebGPU: fixed version check for Emscripten 5.0.0+. - WebGPU: fixed version check for Emscripten 5.0.0+.
- WebGPU: removed support for Emscripten <4.0.10. (#9281) [@ypujante] - WebGPU: removed support for Emscripten <4.0.10. (#9281) [@ypujante]
- WebGPU: added support for WGVK native backend via IMGUI_IMPL_WEBGPU_BACKEND_WGVK, - WebGPU: added support for WGVK native backend via `IMGUI_IMPL_WEBGPU_BACKEND_WGVK`,
using SPIRV shaders if WGSL is not available. (#9316, #9246, #9257) [@r-lyeh] using SPIRV shaders if WGSL is not available. (#9316, #9246, #9257) [@r-lyeh]
(WGVK is a lightweight alternative to Dawn or WGPU for native applications, (WGVK is a lightweight alternative to Dawn or WGPU for native applications,
which is easier to build/setup, see: https://github.com/manuel5975p/WGVK) which is easier to build/setup, see: https://github.com/manuel5975p/WGVK)
@@ -187,9 +189,9 @@ Other Changes:
- Emscripten: fixed minor rendering issues with our HTML shell. (#9281) [@ypujante] - Emscripten: fixed minor rendering issues with our HTML shell. (#9281) [@ypujante]
- hidden small blue outline when canvas is focused on Chrome. - hidden small blue outline when canvas is focused on Chrome.
- hidden scrollbar in Firefox. - hidden scrollbar in Firefox.
- Vulkan: added ImGui_ImplVulkan_PipelineInfo::ExtraDynamicStates[] to allow specifying - Vulkan: added `ImGui_ImplVulkan_PipelineInfo::ExtraDynamicStates[]` to allow specifying
extra dynamic states to add when creating the VkPipeline. (#9211) [@DziubanMaciej] extra dynamic states to add when creating the VkPipeline. (#9211) [@DziubanMaciej]
- Vulkan: ImGui_ImplVulkan_AddTexture() skips updating descriptor_set if failing - Vulkan: `ImGui_ImplVulkan_AddTexture()` skips updating descriptor_set if failing
to allocate one. (#8677) [@micb25] to allocate one. (#8677) [@micb25]
- WebGPU: fixed undefined behaviors in example code for requesting adapter - WebGPU: fixed undefined behaviors in example code for requesting adapter
and device. (#9246, #9256) [@r-lyeh] and device. (#9246, #9256) [@r-lyeh]
+1 -1
View File
@@ -1,4 +1,4 @@
// dear imgui, v1.92.7 WIP // dear imgui, v1.92.7
// (main code and documentation) // (main code and documentation)
// Help: // Help:
+3 -3
View File
@@ -1,4 +1,4 @@
// dear imgui, v1.92.7 WIP // dear imgui, v1.92.7
// (headers) // (headers)
// Help: // Help:
@@ -29,8 +29,8 @@
// Library Version // Library Version
// (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345') // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM >= 12345')
#define IMGUI_VERSION "1.92.7 WIP" #define IMGUI_VERSION "1.92.7"
#define IMGUI_VERSION_NUM 19269 #define IMGUI_VERSION_NUM 19270
#define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000 #define IMGUI_HAS_TABLE // Added BeginTable() - from IMGUI_VERSION_NUM >= 18000
#define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198 #define IMGUI_HAS_TEXTURES // Added ImGuiBackendFlags_RendererHasTextures - from IMGUI_VERSION_NUM >= 19198
+1 -1
View File
@@ -1,4 +1,4 @@
// dear imgui, v1.92.7 WIP // dear imgui, v1.92.7
// (demo code) // (demo code)
// Help: // Help:
+1 -1
View File
@@ -1,4 +1,4 @@
// dear imgui, v1.92.7 WIP // dear imgui, v1.92.7
// (drawing and font code) // (drawing and font code)
/* /*
+1 -1
View File
@@ -1,4 +1,4 @@
// dear imgui, v1.92.7 WIP // dear imgui, v1.92.7
// (internal structures/api) // (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. // You may use this file to debug, understand or extend Dear ImGui features but we don't provide any guarantee of forward compatibility.
+1 -1
View File
@@ -1,4 +1,4 @@
// dear imgui, v1.92.7 WIP // dear imgui, v1.92.7
// (tables and columns code) // (tables and columns code)
/* /*
+1 -1
View File
@@ -1,4 +1,4 @@
// dear imgui, v1.92.7 WIP // dear imgui, v1.92.7
// (widgets code) // (widgets code)
/* /*