qwer and ocornut
ac07da2b5b
Fonts: Added macros to disable ProggyClean/ProggyVector separately. ( #9407 )
2026-05-27 16:50:53 +02:00
ocornut
243097ca8f
Docs: retroactively amend changelog for AddLineH(), AddLineV().
...
Amend 691b89b . (#9360 )
2026-05-26 20:36:29 +02:00
ocornut
fbcf95193f
ImFontAtlas: moved common TexData calls into a same helper functions, so adding new ones is easier.
2026-05-22 20:03:30 +02:00
ocornut
24a80f74a4
InputText, Style: added InputTextCursorSize to configure cursor/caret thickness. ( #7031 , #9409 )
2026-05-22 19:12:36 +02:00
ocornut
904b663184
Clarify support for "%s" shortcuts in functions taking format strings. ( #9404 , #3466 , #6846 )
2026-05-19 18:50:39 +02:00
MouriNaruto and ocornut
3e7b79aa17
Backends: Win32: use SetProcessDpiAwarenessContext instead of SetThreadDpiAwarenessContext when available, to fix the OpenGL3 Win32 example DPI scaling issue. ( #9403 )
2026-05-19 17:53:36 +02:00
ocornut
e41d691da1
Demo: Tree Nodes: extract 'Tree Nodes->Selectable Nodes' into its own thing.
...
+ comments (#9401 )
2026-05-18 14:31:58 +02:00
ocornut
93e396ffb7
Textures: call ImTextureDataUpdateNewFrame() for textures registered via RegisterUserTexture(). ( #8789 , #8465 )
...
Amend
2026-05-15 16:38:45 +02:00
ocornut
068e055510
Textures: extract ImTextureDataUpdateNewFrame() out of ImFontAtlasUpdateNewFrame(). ( #8465 )
2026-05-15 16:38:45 +02:00
ocornut
db161b84c9
Windows: clicking on a window's empty-space to move/focus a window checks for lack of queued focus request. ( #9382 )
2026-05-15 13:45:03 +02:00
ocornut
4088a4f40c
Windows: clicking on a window's empty-space to move/focus a window checks for lack of mouse button ownership. ( #9382 )
2026-05-15 13:44:40 +02:00
ocornut
46a050fff2
Nav: minor optimization NavUpdate().
...
To be honest this is mostly to ease debug stepping in the common case.
2026-05-15 13:43:45 +02:00
ocornut
c7767926ce
Version 1.92.9 WIP
2026-05-15 13:28:32 +02:00
ocornut
310c719a1f
Rework definition of ImDrawFlags_InvalidMask_ so it more strictly fits in an int32 for non C/C++ languages where it matters. ( #9396 , #9397 )
2026-05-15 10:48:24 +02:00
ocornut
b2546a5c93
Comments on not needing to use ImDrawFlags_RoundCornersAll.
2026-05-13 12:46:07 +02:00
ocornut
e0f5f9a14c
Amend AddRect(), AddPolyline() error detection to safely return an trigger error handling mechanism.
...
Amend 6df50a0667
2026-05-12 17:40:28 +02:00
ocornut
8936b58fe2
Version 1.92.8
...
Include minor bits: adjust activeid logging, tweak comments.
2026-05-12 16:30:30 +02:00
omar and GitHub
eebaddd340
Docs: added SECURITY.md.
2026-05-11 19:03:08 +02:00
ocornut
73afb6b6e6
Fonts: clarify that ClearFonts() be useful over calling Clear().
2026-05-11 17:45:59 +02:00
ocornut
b8f6c51af7
Fonts: move ClearFonts(), ClearInputData(), ClearTexData() implementation (no other changes)
2026-05-11 17:42:08 +02:00
ocornut
4ac473b2c7
Fixed BeginMenu() leading to window with is_resizable_width=true. Fix/amend 95bd1577d + ac1f57b. ( #9355 )
2026-05-11 16:35:40 +02:00
ocornut
ac1f57ba0c
Fixed BeginMenu() leading to window with is_resizable_width=true. Fix/amend 95bd1577d. ( #9355 )
...
We should instead probably make BeginChild() not set on ImGuiWindowFlags_AlwaysAutoResize on either ResizeX or ResizeY, but that'll be done later.
2026-05-11 16:34:33 +02:00
ocornut
821a396556
Fixed warning on Clang 26.
2026-05-11 15:59:42 +02:00
manuel and ocornut
2b31f65167
Examples: WebGPU+GLFW/SDL2/SDL3: wire up the IMGUI_WGVK_DIR path. ( #9387 )
...
The block was a stub - find Vulkan, detect Wayland/X11, set the SUPPORT_*_SURFACE defines that wgvk.c needs.
2026-05-11 15:42:16 +02:00
manuel and ocornut
b58836f287
Backends: WebGPU: detect WGSL support at runtime instead of excluding WGVK at compile time. ( #9387 )
...
Previously WGVK was hard-disabled from WGSL via #if !defined(IMGUI_IMPL_WEBGPU_BACKEND_WGVK),
forcing the SPIRV fallback unconditionally. Now the WGSL path is attempted on all backends
and an empty stage_desc is returned when the module fails to compile letting the existing
SPIRV fallback at the call site kick in.
2026-05-11 15:38:27 +02:00
ocornut
bca5a69928
BeginMenu()/MenuItem(): fixed accidental triggering of child menu items when opening a menu inside a small host window forcing the child menu window to be repositioned under the mouse cursor. ( #8233 , #9394 )
...
nb: ImGuiSelectableFlags_NoHoldingActiveID is not used anymore. Would remove remove once we remove the unnecessary call to Selectable() from MenuItem().
2026-05-11 15:32:39 +02:00
ocornut
eb453f2be6
Checkbox, Style: added ImGuiCol_CheckboxSelectedBg. ( #9392 )
2026-05-11 14:30:34 +02:00
ocornut
56b37bf93c
Inputs: SetItemKeyOwner(): does not set ownership is key is already taken.
...
(#456 , #2637 , #2620 , #2891 , #3370 , #3724 , #4828 , #5108 , #5242 , #5641 )
2026-05-07 21:22:33 +02:00
ocornut
0eae77f783
Inputs: SetItemKeyOwner(): return true if ownership has been requested, which can to be checked to accurately gate further input test.
...
(#456 , #2637 , #2620 , #2891 , #3370 , #3724 , #4828 , #5108 , #5242 , #5641 )
2026-05-07 21:15:27 +02:00
ocornut
02ccd9f348
Scrolling, Inputs: using mouse wheel to scroll takes and keeps ownership of the corresponding keys while a wheeling window is locked.
...
Ref 4448d975d . (#2604 , #3795 )
2026-05-07 20:51:57 +02:00
ocornut
163b8670c8
Demo: added image viewer with magnifier and grid.
2026-05-07 20:20:05 +02:00
ocornut
a70b97ee48
Warning fixes.
2026-05-07 16:51:34 +02:00
ocornut
6df50a0667
(Breaking) DrawList: swapped the last two arguments of AddRect(), AddPolyline(), PathStroke(). thickness<>flags.
...
Added inline redirection functions when IMGUI_DISABLE_OBSOLETE_FUNCTIONS is off.
Marked the old functions are =delete when IMGUI_DISABLE_OBSOLETE_FUNCTIONS is on, to allow for better type-checking.
The aim is to be able to use/add flags to more ImDrawList functions, and making existing functions consistents was deemed very desirable.
2026-05-07 16:37:57 +02:00
ocornut
976c5c0f3a
Textures: extract ImTextureDataQueueUpload() out of ImFontAtlasTextureBlockQueueUpload() ( #8465 )
...
Not atlas specific, in support of texture system.
2026-05-06 16:19:39 +02:00
Mikko Mononen and ocornut
691b89baae
ImDrawList: added AddLineH(), AddLineV() helpers. ( #9360 )
...
This commit is aimed to be a lossless transform. Further layout fixes in subsequent commits.
2026-04-28 17:04:54 +02:00
ocornut
c0b693b1d4
MultiSelect: Box-Select + Tables: fixed when using SpanAllColumns paths. ( #9383 , #7994 )
...
Amend d1a8995 which didn't fix the thing it claimed to fix, as my naive last minute refactor broke it.
2026-04-28 15:58:21 +02:00
Alexander "FireFox" Ong and ocornut
865a6dfa59
InputScalar: fixed not parsing user input when the display format is configured not to show the scalar value. ( #9385 )
...
Useful e.g. for displaying "mixed" inputs, where a single field might represent multiple different values.
2026-04-28 15:25:12 +02:00
Vlad and ocornut
dee9b15bbe
Backends: Metal: add sampler states and DrawCallback_SetSamplerLinear / DrawCallback_SetSamplerNearest callbacks. ( #9381 , #9371 , #9378 )
2026-04-28 15:09:23 +02:00
ocornut
d1a8995634
MultiSelect: Box-Select + Tables: fixed when using SpanAllColumns paths. ( #9383 , #7994 )
...
Amend ac88294 + d7b40ab
2026-04-28 14:58:47 +02:00
ocornut
ab36fbaf48
Drag and Drop, Style: added ImGuiStyleVar_DragDropTargetRounding. ( #9056 )
...
+ readded rounding arg to RenderDragDropTargetRectEx().
2026-04-27 18:23:56 +02:00
ocornut
e3033c3975
Examples: moving example_win32_directx11 on top of the .sln makes it the default selected project.
2026-04-24 17:38:51 +02:00
ocornut
10c378cdfc
InputInt, InputFloat, InputScalar: reinstated and fixed ImGuiInputTextFlags_EnterReturnsTrue. ( #8665 , #9299 , #8065 , #3946 , #6284 , #9117 )
2026-04-24 15:15:19 +02:00
ocornut
db23a78c60
Internals: store ImGuiItemStatusFlags_EditedInternal bypassing ImGuiItemFlags_NoMarkEdited.
...
Convenient if the same signal is not passed via e.g. return value. (#8665 , #9299 , #8065 , #3946 , #6284 , #9117 )
2026-04-24 15:15:16 +02:00
ocornut
bda49826cf
Backends: OpenGL3: build fix for WebGL/ES2/Emscripten. ( #9378 )
...
Amend 6b05f71 which was incorrectly labelled.
2026-04-24 12:26:21 +02:00
ocornut
6b05f711fd
Backends: WebGPU: build fix for WebGL/ES2.
2026-04-23 22:06:42 +02:00
ocornut
86ebb3bc11
Backends: removed samplers from ImGui_ImplDX10_RenderState, ImGui_ImplDX11_RenderState + fixed all Changelogs. ( #9378 )
2026-04-23 22:03:11 +02:00
ocornut
7e7f3adb80
Removed DrawCallback_SetSamplerCustom feature for now. Too unreliable to get working everywhere. ( #9378 )
2026-04-23 21:50:52 +02:00
ocornut
dfe6f9ebca
Backends: WebGPU: added SetSamplerLinear/Nearest draw callbacks. ( #9378 )
2026-04-23 21:50:50 +02:00
ocornut
37952fb3b8
Backends: Vulkan, SDLGPU3: remove samplers from RenderState. ( #9378 )
...
Revert part of ac261203a5 , 9ee3d731b5 (#8866 , #8163 , #7998 , #7988 ) since we have a better solution.
2026-04-23 21:50:47 +02:00
omar and ocornut
0a811e8ea1
Backends: DX9, DX10, DX11, DX12, Allegro5, OpenGL2, OpenGL3, SDLRenderer2, SDLRenderer3, SDLGPU3, Vulkan: added standard draw callbacks when possible. ( #9378 )
2026-04-23 21:50:45 +02:00
ocornut
82f46a73f8
(Breaking) Moved ImDrawCallback_ResetRenderState -> ImGui::GetPlatformIO().DrawCallback_ResetRenderState + added room in ImGuiPlatformIO for more standard backend-agnostic draw callbacks. ( #9378 )
2026-04-23 21:50:41 +02:00
ocornut
a6a16cf8a2
Backends: WebGPU: protect better against zero tex id.
2026-04-23 20:50:34 +02:00
ocornut
e887098740
Backends: WebGPU: always use SPIR-V shader on WGVK, as it cannot be detected at runtime. ( #9316 , #9246 , #9257 )
2026-04-23 19:42:29 +02:00
ocornut
f934719fbf
TabBar: comments about ImGuiTabBarFlags_FittingPolicyMixed and TabMinWidthShrink. ( #9376 , #3421 , #8800 )
2026-04-23 18:31:53 +02:00
ocornut
ce3fe4078a
Backends: WGPU: fixed build.
...
Incorrect line from a WIP branch slipped in ac06ad7
2026-04-23 17:31:14 +02:00
ocornut
f2f843c113
Fixed some extremely zealous warnings (GCC -Wconversion, -Wdouble-promotion)
...
(amend a1e0552 )
2026-04-23 17:23:43 +02:00
ocornut
adc0027912
Backends: Vulkan: remove unused artefacts (mistakenly commited in 0453ae9).
2026-04-23 16:08:11 +02:00
ocornut
ac06ad7b48
ImDrawList: made AddCallback() user data default to NULL + minor amends/comments.
2026-04-23 15:58:44 +02:00
ocornut
4739af2d51
Update VS toolset in all .vcxproj from VS2015 (v140) to VS2017 (v141).
...
It supports vcpkg.
2026-04-23 15:58:04 +02:00
ocornut
b065713cec
Backends: OpenGL2/3, SDLRenderer2/3, DirectX9, Metal: moved Init/Shutdown code lower in the file.
...
Allows to point to local functions without forward declaring them.
2026-04-23 15:53:28 +02:00
ocornut
fb308c14ce
Remove noise from 0453ae9 + amend comments. ( #914 )
2026-04-22 14:50:15 +02:00
ocornut
ac261203a5
(Breaking) Backends: Vulkan: redesigned to use separate ImageView + Sampler instead of Combined Image Sampler. (fixes, amends) ( #914 )
2026-04-22 14:43:44 +02:00
yaz0r and ocornut
0453ae96e8
(Breaking) Backends: Vulkan: redesigned to use separate ImageView + Sampler instead of Combined Image Sampler. (WIP) ( #914 )
2026-04-22 14:43:44 +02:00
ocornut
a5fd597be3
Backends: Vulkan: minor changes.
2026-04-22 14:23:42 +02:00
ocornut
382b99c334
PlotHistogram: add comments. ( #9372 )
2026-04-21 22:32:01 +02:00
ocornut
2d131ef5b7
Backends: Vulkan: renaming and moving code around to reduce diff in upcoming change. Should be no-op.
2026-04-21 22:22:06 +02:00
ocornut
a1e05521e9
Backends: GLFW: added a Win32-specific implementation of ImGui_ImplGlfw_GetContentScaleXXXX functions for legacy GLFW 3.2. ( #9003 )
...
Since we ship GLFW 3.2 binaries for Windows this makes our examples a little better behaving by default.
Ideally we'd use ImGui_ImplWin32_GetDpiScaleForHwnd() and ImGui_ImplWin32_GetDpiScaleForMonitor() but they are too much code to copy.
2026-04-21 17:24:41 +02:00
ocornut
d7b40ab9a9
MultiSelect: Box-Select + Tables: Amend ac88294. fix usage of box-selection columns with items straying out of columns. ( #7994 , #2221 )
2026-04-20 11:46:36 +02:00
ocornut
ac88294b4a
MultiSelect: Box-Select +Tables: fix usage of box-selection columns with items straying out of columns. ( #7994 , #2221 )
...
Use 00d3f9295e .
+ Assets Browser toggle to enable ScrollX.
2026-04-20 11:12:43 +02:00
ocornut
ea1c04f7ab
Multi-Select + Tables: fixed an issue which could lead to an extra vertical offset in the Header row. ( #8250 , #7994 )
...
Because BeginMultiSelect() does `ms->ScopeRectMin = window->DC.CursorMaxPos = window->DC.CursorPos` at a time where CursorPos is already past MaxPos.y because of ItemSpacing.y. Accumulate spacing.
2026-04-17 19:23:10 +02:00
ocornut
cdb046ac3f
Demo: Assets Browser: fixed not submitting anything after a SetCursorScreenPos() call when no items. Would not manifest because BeginMultiSelect() altered CursorMaxPos. ( #5548 )
...
cc: 2819ab32f8 , edcd5b113e
2026-04-17 19:23:04 +02:00
ocornut
97939e6837
Multi-Select: Box-Select: fixes for using accross nested child windows. ( #8364 )
...
- IsFocused scan nav focus route.
- When covering multiple windows, draw in front most ones (grabbed FindFrontMostVisibleChildWindow() from docking branch).
2026-04-17 16:36:09 +02:00
ocornut
c91b03060d
Multi-Select: Box-Select: improve dirty unclip rectangle calculation + use in ImGuiMultiSelectFlags_BoxSelect1d mode when needed (e.g. wheel scrolling up). ( #7994 , #8250 , #7821 , #7850 , #7970 )
2026-04-17 14:38:12 +02:00
ocornut
a2eb6d99ed
MultiSelect: Box-Select +Tables: revert 4d00bf8ad which seems unneeded since enforce table layout in BeginMultiSelect(). ( #7970 , #7821 ).
2026-04-16 23:59:44 +02:00
ocornut
a2916923a1
MultiSelect: Box-Select + Clipper: extend UnclipRect by ItemSpacing. ( #7994 , #8250 , #7821 , #7850 , #7970 )
...
Amend 1ac469b50f
2026-04-16 23:37:46 +02:00
ocornut
2cbdb7a337
TextLink(), BeginCombo(): fixed two remainig instances of needlessly scanning for ##.
2026-04-16 16:47:13 +02:00
ocornut
d4783bd553
Added missing Test Engine hooks for PlotXXX(), VSliderXXX(), TableHeader().
2026-04-16 16:39:07 +02:00
ocornut
ce855cada2
Tables, Multi-Select: Fixed an issue using Multi-Select within a Table causing column width measurement to be invalid when trailing column contents is not submitted in the last row. ( #9341 , #8250 )
2026-04-16 15:21:56 +02:00
ocornut
39e7bf5a08
Separator(): enforce a minimum border size if style.SeparatorSize is 0.0f. ( #9369 )
2026-04-16 11:32:40 +02:00
ocornut
0e318a5182
Backends: SDL2: Made ImGui_ImplSDL2_GetContentScaleXXX helpers return a minimum of 1.0f, as some Linux setup seems to report <1.0f value and this breaks scaling border size. ( #9369 )
2026-04-16 11:32:07 +02:00
ocornut
19753a30d8
Multi-Select: Box-Select+Tables: fixed Column return value when UnClipRect is active. ( #7994 , #8250 )
...
Amend 6ce4b44 + bbd0af7 . This probably should be redesigned to be more generic, e.g. move UnclipRect concept outside of Boxselect.
2026-04-15 15:08:49 +02:00
ocornut
6fb74f38af
Demo: Assets Browser: make default icon size font dependant.
2026-04-15 14:26:50 +02:00
Andy Grundman and ocornut
4b80d409e7
Backends: Metal: use a dedicated bufferCacheLock to avoid crashing when bufferCache is replaced by a new object while being used for synchronize(). ( #9367 )
...
This also removes the dispatch onto main when adding the finished buffers back into the cache. This operation should be fine to run on any thread as long as it's inside the sync block.
2026-04-14 17:14:08 +02:00
ocornut
ed4dd679f1
Fixed vertical scrollbar top coordinates when using thick borders on windows with no title bar and no menu bar. ( #9366 )
2026-04-14 16:39:08 +02:00
ocornut
3cd8683061
Fonts: assert when using MergeMode with an explicit size over a target font with an implicit size, as scale factor are likely erroneous. ( #9361 )
2026-04-13 16:45:18 +02:00
ocornut
bbd0af7256
Multi-Select: Box-Select+Tables: fixed using BeginMultiSelect() before table layout is locked. ( #8250 )
2026-04-13 16:19:45 +02:00
ocornut
f83a378d62
TabBar: changed edge's TabItem ClipRect to not pass an inverted PushClipRect().
...
While not currently a problem, it would be if ImRect::Overlaps() is changed to use <= instead of < (cc: #3976 which deal with Contains but sort of similar topic).
Changing ImDrawList::PushClipRect()'s intersect_with_current_clip_rect path to use ClipRectFull() would also fix this, but it may ambiguous there which behavior would be correct.
Amend 1ec464eb9 .
2026-04-13 14:11:19 +02:00
Flyinghead and ocornut
84b4b35902
Fonts: rework UpdateCurrentFontSize() check. ( #9364 )
...
Consistent with line above.
2026-04-13 10:06:59 +02:00
ocornut
2dc64f99bc
Minor optimization: reduce redudant label scanning in common widgets.
...
Missing stuff from 11de9df .
The 6 remaining use of CalcTextSize(...,true) don't need this.
2026-04-10 18:37:08 +02:00
ocornut
5da7eb0a84
DrawList: remove/strip old FixRectCornerFlags() code.
...
Amend 44a6b493e
2026-04-10 17:42:13 +02:00
ocornut
f678c91617
Multi-Select: disable MultiSelectAddSetRange() attempt at merging consecutive requests submitted from box-selection.
...
Essentially reverts 79b77d91c , f904a6646c which did the initial span merging.
Amend and disable change done for f08b33f .
2026-04-09 23:13:15 +02:00
ocornut
6ce4b44547
Mulit-Select: Box-Select: fixed an issue using in a table while relying on the TableNextColumn() return value to perform coarse clipping. ( #7994 )
...
This is presumably not sufficient as MultiSelectAddSetRange() is also deficient there.
2026-04-09 23:13:12 +02:00
ocornut
f08b33fd0c
Multi-Select: Box-Select: fixed an issue where items out of horizontal view would sometimes lead to incorrect merging of sequential selection requests. ( #7994 , #1861 , #6518 )
...
SetNextItemSelectionUserData() could use g.NextItemData.SelectionUserData if we could guarantee if would be valid when nesting multi-select blocks.
But it doesn't make much of a difference as whole ImGuiMultiSelectTempData fits in 2 cache lines.
2026-04-09 22:16:47 +02:00
ocornut
b444694b3d
Multi-Select: Box-Select: fixed an issue using ImGuiMultiSelectFlags_BoxSelect2d mode, where items out of view wouldn't be properly selected. ( #7994 , #1861 , #6518 )
...
Because BoxSelectRectPrev and BoxSelectRectCurr were clamped to scope boundaries, dragging mouse outside of the scope would usually keep one axis unchanged.
Amend 15391762dd
2026-04-09 21:40:29 +02:00
ocornut
24677c561e
Multi-Select: Box-Select: add compile-time debug options. ( #7994 , #1861 , #6518 )
2026-04-09 21:40:13 +02:00
ocornut
01a4ad3a50
Docs: update legacy TODO list.
2026-04-09 15:01:40 +02:00
ocornut
f4ed421a88
InputText: CharFilter callback event sets CursorPos/SelectionStart/SelectionEnd. ( #816 )
2026-04-09 14:54:09 +02:00
ocornut
11de9df44c
Minor optimization: reduce redudant label scanning in common widgets.
2026-04-09 14:25:34 +02:00
ocornut
c2565fe642
Update ignore list
...
Add .claude
2026-04-09 13:59:45 +02:00
ocornut
95bd1577d6
Windows: Child windows with only ImGuiChildFlags_AutoResizeY flag keep using the proportional default ItemWidth. ( #9355 )
...
+ Removed Tooltip flag check, it's from 8c4fcf1359 (!) where AlwaysAutoReszie was added after Tooltip. Nowadays Tooltips sets ImGuiChildFlags_AlwaysAutoResize.
2026-04-09 13:11:16 +02:00