Timo Suoranta
0cc7e51da2
Drags: added value ladder: stepped value editing with explicit magnitude selection (Houdini-style) ( #9463 )
...
Hold middle mouse button over a DragXXX widget to open a vertical ladder
of step magnitudes: drag vertically to select the step magnitude,
horizontally to add/subtract steps of that size. Release middle mouse
button to confirm, press Escape to cancel and revert to the initial value.
- Enable globally with io.ConfigDragValueLadder or per-widget with
ImGuiSliderFlags_ValueLadder.
- Rungs are powers of ten, from the smallest step representable with the
display format (1 for integers) up to 10000. For bounded widgets, rungs
covering the whole range or more are dropped.
- Keyboard/gamepad navigation support: activating the widget
(Space) opens the ladder, Up/Down select the step magnitude,
Left/Right add/subtract steps, Space confirms, Escape cancels and
reverts.
- The ladder is disabled when it would yield fewer than 3 rungs.
- Unlike regular drag speed tweaks (Alt/Shift), the ladder makes the
current step magnitude visible and exact, and any size of change is
reachable without a range.
- Min/max clamping, wrap-around and display format rounding behave the
same as regular mouse drags (reuses the DragBehaviorT pipeline).
- Multi-component widgets (DragFloat3 etc.) get a ladder per component.
- Overlay is drawn on the viewport foreground draw list, so it cannot
interfere with inputs and may spill outside the host window.
The overlay grows (monotonically, staying centered and clamped into
the viewport) whenever the formatted value is wider than the box.
- Not supported together with ImGuiSliderFlags_Logarithmic.
- Demo: added dedicated Widgets->Value Ladder section, checkboxes in
Configuration->Widgets and Widgets->Drag/Slider Flags.
- Added DataTypeAsDouble() to the DataTypeXXX API (replacing the local
ValueLadderGetValueAsDouble() helper). Range span is computed with
DataTypeApplyOp() subtraction followed by DataTypeAsDouble(), which
also clamps integer overflow.
Addresses feature request #9463 .
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-17 09:41:42 +03:00
ocornut
367b2c24f3
Merge branch 'master' into docking
2026-09-09 21:25:09 +02:00
ocornut
148d128f6e
Mixed Value: use ImGuiCol_TextMixedValue (= ImGuiCol_TextDisabled). Set MixedValueLabel to null to display original value. ( #5518 , #5677 , #6865 )
2026-09-08 16:47:04 +02:00
ocornut
a2b7d6e792
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_dx10.cpp
# backends/imgui_impl_dx12.cpp
# backends/imgui_impl_metal.mm
# backends/imgui_impl_metal4.mm
# backends/imgui_impl_opengl2.cpp
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_sdlgpu3.cpp
# backends/imgui_impl_vulkan.cpp
# imgui.cpp
2026-09-07 19:52:24 +02:00
ocornut
04b37d6d23
Added ImGuiItemFlags_MixedValue support for Drags, Sliders, InputScalar, InputText, RadioButton, Combo. ( #5518 , #5677 , #6865 )
2026-09-07 18:56:32 +02:00
ocornut
9090ba71e5
Fixed Tesselation -> Tessellation in comments.
2026-09-07 16:38:38 +02:00
ocornut
687f7fb8ac
Drags, Sliders: ongoing drags may be cancelled using Right-Mouse mouse button, reverting to the initial value. ( #8564 , #9534 )
2026-09-07 16:16:55 +02:00
Lukasz Stalmirski
4ebb04333b
IO: restore default platform handlers on ClearPlatformHandlers. ( #9537 , #8945 , #2769 )
...
Amend d4f722d5b.
2026-09-07 13:05:15 +02:00
ocornut
7e1b65d26d
Merge branch 'master' into docking
...
# Conflicts:
# imgui_internal.h
2026-09-02 17:27:51 +02:00
ocornut
f562ab8e32
DrawList: reworked assert in PushTexture() to allow convenience grace period of using texture already queued for destroy during the same frame. ( #9528 , #8465 )
...
Amend 131f5c57ab
2026-09-01 16:22:14 +02:00
nilFinx
e0537bf72b
Fixed build issue with MacPorts Clang 16 (missing TARGET_OS_OSX). ( #9498 )
2026-08-31 18:42:46 +02:00
ocornut
0af8f475d1
Fixed GetBackgroundDrawList()/GetForegroundDrawList() not being properly reset every frame when cumulated session time is very large. ( #9521 )
...
Using a FrameCount for compare. Kept time as float to be consistent with other GC-related timestamps: if there is an actual need to use double we'll switch everywhere.
2026-08-23 13:05:33 +02:00
ocornut
e236e74206
Merge branch 'master' into docking
...
# Conflicts:
# backends/imgui_impl_dx12.cpp
# backends/imgui_impl_sdl2.cpp
# examples/example_sdl2_metal/main.mm
# imgui_internal.h
2026-08-06 21:32:43 +02:00
ocornut
6a6d7bc3ca
Internals: added SetNextWindowFlags(), SetNextWindowChildFlags() helpers + made BeginChildEx() itself read from them. ( #9503 , #8280 , #9412 , #9499 , #9393 , #8488 )
...
As a result BeginTable() doesn't need to read itself and pass that to BeginChildEx().
2026-08-05 21:16:35 +02:00
ocornut
94c05ba40b
Viewports: removed unused code. Extra assert. ( #9502 )
2026-08-05 20:18:26 +02:00
ocornut
035c87ef84
Viewports: fixed viewport->FramebufferScale update for main viewport. Amend 98a66d8, 91b131e. ( #9502 )
2026-08-05 17:20:04 +02:00
ocornut
91b131e448
Viewports: fixed viewport->FramebufferScale being reset. Amend 98a66d8. ( #9502 )
2026-08-05 15:54:39 +02:00
ocornut
11bd4e7731
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2026-08-04 14:34:04 +02:00
ocornut
2de0a07cd4
Fixed PVS Studio false positive.
2026-08-04 14:33:31 +02:00
ocornut
98a66d8c88
Viewports: fixed viewport->Framebuffer not being state on platform on backend where Platform_GetWindowFramebufferScale (value was only applied to DrawData).
2026-08-04 14:02:53 +02:00
ocornut
5108603789
DrawList: apply current pixel density to DrawList's fringe scale. Added ImDrawList::_SetPixelDensity(). Reword FontRasterizerDensity as CurrentPixelDensity.
...
Amend 94a4322.
# Conflicts:
# imgui.cpp
# imgui.h
# imgui_draw.cpp
# imgui_internal.h
2026-08-04 13:15:05 +02:00
ocornut
fdc1152281
(Breaking) Style: obsoleted style.CurveTessellationTol in favor of style.CurveTesselationMaxError.
...
cc #3127 , #3664 , #3665
2026-08-03 17:05:44 +02:00
ocornut
ebd752a0ec
Version 1.93.0 WIP
2026-08-03 14:42:56 +02:00
ocornut
b48d1afbe8
Merge branch 'master' into docking
...
# Conflicts:
# docs/CHANGELOG.txt
2026-07-31 16:25:00 +02:00
ocornut
f1cc2ae15e
Version 1.92.9b
2026-07-31 16:14:42 +02:00
ocornut
81cfcb8c1f
Docking: (very minor) Scaling of drop boxes padding, rounding, thickness.
2026-07-30 13:57:36 +02:00
ocornut
950d27137e
Tweaks.
2026-07-29 15:51:15 +02:00
ocornut
b334d19b66
ImDrawData: fixed a regression in 1.92.9 where legacy ImDrawData::CmdListsCount was always 0.
2026-07-26 15:46:38 +02:00
ocornut
a9e7a8c880
ImDrawData: fixed a regression in 1.92.9 where legacy ImDrawData::CmdListsCount was always 0.
2026-07-26 15:42:48 +02:00
ocornut
9b4eb24cee
Merge branch 'master' into docking
2026-07-25 13:45:27 +02:00
ocornut
01380c5797
Version 1.92.9
2026-07-25 13:28:06 +02:00
ocornut
e722165561
Docs: rework FAQ index, added multi-threading and string-view details.
2026-07-25 12:41:02 +02:00
ocornut
f594633b54
Popups: added bool return value to OpenPopup(), OpenPopupOnItemClick() functions. ( #9429 )
...
Following on 795cf6fcb5.
2026-07-23 17:49:39 +02:00
ocornut
ca49eff398
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
2026-07-22 15:46:24 +02:00
ocornut
6f41d13c7a
DrawData: added FrameCount field to facilitate debugging multi-threading issues. ( #8597 , #9136 )
2026-07-20 17:00:32 +02:00
ocornut
548389359c
(Breaking) ImDrawData: marked draw_data->CmdListsCount as obsolete. Use draw_data->CmdLists.Size.
...
# Conflicts:
# docs/CHANGELOG.txt
# imgui.cpp
2026-07-20 16:58:45 +02:00
ocornut
e4f7c5c722
Disabling ImGuiItemFlags_LiveEditOnInputScalar by default! ( #9476 , #701 )
2026-07-20 14:26:57 +02:00
ocornut
d00a87565b
Fixed build when using IMGUI_DEBUG_HIGHLIGHT_ALL_ID_CONFLICTS + IMGUI_DISABLE_OBSOLETE_FUNCTIONS. ( #9482 )
...
Amend 6df50a0667
2026-07-20 14:11:21 +02:00
ocornut
93bd4f0adb
Merge branch 'master' into docking
...
# Conflicts:
# .github/workflows/build.yml
# backends/imgui_impl_opengl2.cpp
# backends/imgui_impl_opengl3.cpp
# backends/imgui_impl_sdl2.cpp
# examples/example_apple_metal4/main.mm
# imgui.cpp
2026-07-16 15:56:36 +02:00
ocornut
26b8292635
Split ImGuiItemFlags_LiveEdit into ImGuiItemFlags_LiveEditText, ImGuiItemFlags_LiveEditScalar. Added Demo contents. ( #9476 , #701 )
...
cc #3936 , #3946 , #5904 , #6284 , #8149 , #8065 , #8665 , #9117 , #9299 , #700 , #1351 , #1875 , #2060 , #2215 , #2380 , #2550 , #3083 , #3338 , #3556 , #4373 , #4714 , #4885 , #5184,#5777, #6707 , #6766 , #8004 , #8303 , #8915 , #9308
2026-07-16 15:46:47 +02:00
ocornut
c958f16059
EndGroup: fixed reporting combined Edit when it happens at the same time as tabbing to next ActiveId. ( #9476 , #701 )
2026-07-16 15:46:43 +02:00
ocornut
4853f5c96b
Internals: rename NextItemData.ItemFlags -> ItemFlagsSet
2026-07-16 15:46:40 +02:00
ocornut
18d63b12be
Added ImGuiItemFlags_LiveEdit flag, and much-awaited support for disabling it. ( #9476 , #701 )
...
cc #3936 , #3946 , #5904 , #6284 , #8149 , #8065 , #8665 , #9117 , #9299 , #700 , #1351 , #1875 , #2060 , #2215 , #2380 , #2550 , #3083 , #3338 , #3556 , #4373 , #4714 , #4885 , #5184,#5777, #6707 , #6766 , #8004 , #8303 , #8915 , #9308
2026-07-16 15:39:53 +02:00
ocornut
2392a52660
InputText: tag InputTextDeactivatedState with an elapsing frame. Avoid unnecessary InputTextDeactivateHook() call on manual deactivation. InputTextDeactivateHook() only takes a record when Edited + callback marks edited. ( #9476 , #701 )
...
for _NoLiveEdit it's easier than we don't use IsItemDeactivatedAfterEdit() in InputText()'s `if (g.InputTextDeactivatedState.ID == id)` block.
2026-07-16 15:39:52 +02:00
ocornut
baeea39c1a
Settings: fixed issues caliing ClearWindowSettings() followed by LoadIniSettingsFromMemory().
...
While not done with core, this would be useful to load .ini over a clean slate.
2026-07-15 19:22:44 +02:00
ocornut
addbfa5021
Settings: fixed ConfigIniSettingsAutoDiscardMonths not calling Cleanup ( #9460 , #9471 )
2026-07-15 13:57:48 +02:00
ocornut
da137cbbb0
(Breaking) Drag and Drop: commented out legacy name ImGuiDragDropFlags_SourceAutoExpirePayload. Use ImGuiDragDropFlags_PayloadAutoExpire.
2026-07-08 18:40:29 +02:00
ocornut
a23e9fb1b5
Merge branch 'master' into docking
...
# Conflicts:
# imgui.cpp
# imgui.h
2026-07-08 15:10:22 +02:00
ocornut
68fce9f3bd
Settings: added DiscardAll option to CleanupIniSettings() / ImGuiSettingsCleanupArgs. ( #9460 )
...
+ Demo: tweak for scaling.
2026-07-08 15:03:19 +02:00
ocornut
f903a7e8e2
Settings: fixed Windows not honoring DiscardWhenMissingDate. ( #9460 )
2026-07-07 22:52:47 +02:00