Commit Graph
100 Commits
Author SHA1 Message Date
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
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
ocornut dd17495a42 Detect and report error when calling End() instead of EndPopup() on a popup. (#9351) 2026-04-08 21:40:05 +02:00
ocornut 1870a779e1 Windows: fixed a single-axis auto-resizing feedback loop issue with nested containers and varying scrollbar visibility. (#9352) 2026-04-08 21:26:16 +02:00
ocornut a9bd173d89 Windows: shallow renames (should be no-op). 2026-04-08 20:40:35 +02:00
ocornut bccec3eabc Tables: fixed IdealMaxPos.y/CursorMaxPos.y computation being wrong when vertically scrolling. (#9352, #7651)
See ""table_reported_size_outer" test amends (0f9d1e02b0).
2026-04-08 20:01:00 +02:00
ocornut d946c6932b InputText: fixed a crash toggling ReadOnly flag while active. (#9354) 2026-04-08 15:56:59 +02:00
ocornut 4d38508c6b Tables: fixed an issue reporting ideal size to parent window/container when both scrollbars are visible but only one of ScrollX/ScrollY was explicitly requested. (#9352, #7651)
Since ScrollX de-facto also enables ScrollY we can't gate accounting for ScrollbarSizes.x based on explicit ScrollY.
Amend a31aa683f
2026-04-08 15:07:11 +02:00
ocornut c0e6580b62 Reword code in CalcWindowAutoFitSize() to match the order used in size_desired calculation.
Should be no-op. Toward (#9352)
2026-04-08 14:31:11 +02:00
ocornut 6985925244 Clipper, Tables: Improved error reporting when misusing the clipper inside a table + made the assert a better recoverable error. (#9350)
Amend 20e040c8
2026-04-07 19:19:40 +02:00
ocornut 7cb0baeb77 imgui_freetype: add FreeType headers & compiled version number in the 'About Dear ImGui' user facing string. 2026-04-07 17:18:16 +02:00
ocornut 03a0b00a34 InputTextMultiline: fixed an issue processing deactivation logic when an active multi-line edit is clipped due to being out of view. 2026-04-03 16:25:57 +02:00
ocornut 4a61188322 Version 1.92.8 WIP 2026-04-03 16:15:46 +02:00
ocornut dac07199cf Version 1.92.7 2026-04-02 19:22:53 +02:00
ocornut 45866bea47 Tables: fixes not releasing ReorderColumn caused by 38f5e5a. Which could break clicking on header to sort. (#9312) 2026-04-02 18:59:23 +02:00
ocornut 65ebca8157 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.
Amend 3aba95060e
2026-04-02 18:35:24 +02:00
ocornut 9e9fdc97bb InputText: rename Edited->EditedThisFrame, add EditedBefore. (#701) + Comments + About box clipboard blurb include a comment. 2026-04-02 15:48:49 +02:00
ocornut fc5e421cb9 Tables: columns freeze doesn't enforce a particular order + rework changelog for clarity. (#9312) 2026-04-02 13:59:41 +02:00
ocornut b7bdea3215 Tables: fixed FrozenColumns issue introduced by 505bc9a.
cc #9312
2026-04-01 21:35:55 +02:00
ocornut bf10275aa7 Tables: allow reordering columns by dragging them in the context menu. (#9312) 2026-04-01 20:08:34 +02:00
ocornut 0867f6113a Tables: reorder allowed check sweep through columns, checks _NoOrder barrier, and reworked to be easy to use from context menu. (#9312)
The sweep doesn't make a difference for reordering with headers as reordering is currently done 1 by 1. But menu ordering will change that.
2026-04-01 20:08:31 +02:00
ocornut 836278db6c Tables: context menu now present columns in display order. (#9312) 2026-04-01 20:08:29 +02:00
ocornut 505bc9a312 Tables: clarify FrozenColumns order to be in order space not in visible space.
+ Removed LeftMostUnfrozenOrder + Angled Headers comments.
While not strictly part of #9312, presenting a suitable reordering menu was made difficult by the old behavior.
2026-04-01 20:08:26 +02:00
ocornut 07acc8bc87 Tables: Angled Headers: angled section for column being reordered via the regular headers stay highlighted during reordering.
Easily possible thanks to 6603cde.
2026-04-01 20:05:34 +02:00
ocornut 6603cdef98 Tables: fixed dragging a header to reorder outside of visible bounds (due to horizontal scrolling) from losing active id. 2026-04-01 20:03:30 +02:00
ocornut 9df0d38d45 Tables: amend 2ac782f bad WIP merge broken reorder. (#9312) 2026-04-01 18:30:29 +02:00
ocornut 2ac782fbed Revert "Tables: rework TableSetColumnDisplayOrder() to take src_order. (#9312)"
This reverts commit 7be8076e9b.
Not a good idea as it's easier to reason and persist column index.
+ clear ReorderColumnDstOrder properly in reinit.
2026-04-01 17:57:13 +02:00
ocornut 9fedea83f0 Tables: TableQueueSetColumnDisplayOrder() enforce handling ImGuiTableColumnFlags_NoReorder as advertised: can't reorder through them. (#9312)
This would never using interactive reordering as reordering from headers was done on a 1 by 1 basis which was already covered in the test.
Hard to tell what's a sensible design for this tbh. Expecting _NoOrder columns to be sequential and leading/trailing anyhow.
2026-04-01 16:03:32 +02:00
ocornut ed4cffece7 Tables: store LeftMostUnfrozenOrder and amend TableQueueSetColumnDisplayOrder(). (#9312) 2026-04-01 16:02:41 +02:00
ocornut 7be8076e9b Tables: rework TableSetColumnDisplayOrder() to take src_order. (#9312) 2026-04-01 16:02:36 +02:00
ocornut 587c4cb87b Tables: rename locals in TableDrawDefaultContextMenu() to reduce confusion. 2026-04-01 15:25:59 +02:00
ocornut aab17456a7 Tables: mark setting as dirty when forcing reordering.
Otherwise the manufactured case of reloading a session that previously had e.g. a slider to adjust freeze count, resetting to 1 on new session, would keep showing you reordering items until another thing triggers marking dirty.
2026-04-01 15:25:57 +02:00
ocornut b62cf3894b Inputs: fixed an issue using SetKeyOwner() with ImGuiInputFlags_LockThisFrame or ImGuiInputFlags_LockUntilRelease on ImGuiMod values. (#9323) 2026-03-25 22:00:14 +01:00
ocornut e9eb04ea95 Internals: TempInputText: added callback/user_data parameters and made end of signature match InputText(). (#2718) 2026-03-25 17:46:04 +01:00
ocornut ed2e5dd0f0 Examples+WebGPU: added support for WGVK in cmakefiles. (#9316, #9246, #9257) 2026-03-25 16:16:15 +01:00
ocornut 59183cf782 Backends, Examples: WebGPU: added support for WGVK. Remaining amends. (#9316, #9246, #9257) 2026-03-25 15:31:39 +01:00
ocornut 0b82487fed TempInputText: amends. Rename ImGuiInputTextFlags_MergedItem to ImGuiInputTextFlags_TempInput for explicitness. (#2718) 2026-03-25 14:29:54 +01:00
ocornut 51f590a2a8 Backends: GLFW: mouse cursor is properly restored if changed by user app/code while using glfwSetInputMode(..., GLFW_CURSOR_DISABLED) or ImGuiConfigFlags_NoMouseCursorChange. (#9322)
Amend 9a4fd69f6
2026-03-25 14:17:29 +01:00
ocornut 6c754ed2cb TempInputText, InputText: enforce making active via ImGuiInputTextFlags_MergedItem. Restore cursor as Rect is provided + comments. (#2718, #6690) 2026-03-25 11:36:40 +01:00
ocornut 79411a0405 Backends, Examples: WebGPU: fixed warnings + scale initial surface height for native. 2026-03-23 16:21:50 +01:00
ocornut 6b1776a7d2 Tables: context menu can be open using navigation Shift+F10 etc. (#8803, #9270) 2026-03-23 15:37:56 +01:00
ocornut 38f5e5a0b8 Tables: rework column reordering code. (#9312)
- Move more logic into TableQueueSetColumnDisplayOrder() so that it may be called from different locations.
- Use to checking if both columns are on same size of the frozen barrier slightly changed to avoid reordering hidden column (with caveat of ill-defined design for what's "right").
2026-03-23 15:14:58 +01:00
ocornut 697b6886e3 Docs: update FAQ about label/ID system. (#9318) 2026-03-23 14:13:36 +01:00
ocornut 8314fc3e5a Menus: shallow tweaks. 2026-03-20 20:47:07 +01:00
ocornut 50b488765f ButtonBehavior, Selectable: made low-level ImGuiButtonFlags_PressedOnRelease not explicitely avoid taking current active id. ImGuiButtonFlags_NoHoldingActiveId may be used for that.
Ditto for ImGuiSelectableFlags_SelectOnRelease, ImGuiSelectableFlags_NoHoldingActiveId. All internals.
Toward #9312
2026-03-20 20:15:17 +01:00
ocornut 4af77622d9 Scrollbar: Fixed an issue which could lead initial click to move the current scroll by a pixel. 2026-03-20 16:14:17 +01:00
ocornut 2315b9f33d InputTextMultiline: fixed an issue where edit buffer wouldn't be reapplied to back buffer on the IsItemDeactivatedAfterEdit() frame. (#9308, #8915, #8273) 2026-03-20 15:48:14 +01:00
ocornut 04dfcd838b InputTextMultiline: fixed losing revert value when activating scrollbar. (toward #9308) 2026-03-20 15:48:14 +01:00
ocornut 2d957152e4 InputTextMultiline: avoid going through reactivation path and InputTextDeactivateHook() when activating scrollbar. (#9308) 2026-03-20 15:37:56 +01:00
ocornut 325563a982 InputTextMultiline: InputTextMultiline: fixed an issue calculating lines count when active.
Amend 4252275
2026-03-20 15:17:07 +01:00
ocornut 3a26b640b2 Drag and Drop: make SetDragDropPayload() memcpy size match our buffer. 2026-03-20 11:50:05 +01:00
ocornut 386ce49c58 Backends: DirectX9: fixed build typo in 0500e54. 2026-03-19 18:17:35 +01:00
ocornut b2c3e37d55 Multi-Select: fix/amend 9700846. . (#9307, #1861) 2026-03-19 16:58:14 +01:00
ocornut 9700846bb3 MultiSelect: added ImGuiMultiSelectFlags_SelectOnClickAlways mode. Prevents Drag and Drop of multiple items but allows BoxSelect to always reselect even when clicking inside a selecttion. (#9307, #1861) 2026-03-19 16:39:50 +01:00
ocornut 0b4967992a MultiSelect: Box-Select: removed now seemingly unnecessary 'selected==false' check, which will also prevent implementation of ImGuiMultiSelectFlags_SelectOnClickAlways. (#9307)
We enter into the block either though navigation, and then the Mouse check fails, either through mouse, and then Selected==false is tested above.
Amend f904a6646.
2026-03-19 16:29:03 +01:00
ocornut 20d8bcb600 (Breaking) MultiSelect: renamed ImGuiMultiSelectFlags_SelectOnClick to ImGuiMultiSelectFlags_SelectOnAuto. (#1861, #6518) 2026-03-19 16:04:04 +01:00
ocornut 358d3912c9 Backends: SDLRenderer2/3: fixed build, typo in 0500e54. 2026-03-19 12:34:11 +01:00
ocornut 4d1ba782ee Revert changing default value of ImTextureID_Invalid to -1. Back to 0. (#9295, #9310, #9293, #8745, #8465, #7090)
Reverts 0db591935f
2026-03-19 11:54:42 +01:00
ocornut 0500e546b5 Backends: DX9, Metal, SDLRenderer2/3: fixed more assumptions that ImTextureID_Invald == 0 + Amend Changelogs. (#9310, #9293) 2026-03-19 11:47:01 +01:00
ocornut b724f940d6 InputText: fixed selection highlight Y1 offset being very slightly off (since 1.92.3). (#9311)
Fixes 1e52e7b90c
2026-03-19 11:20:00 +01:00
ocornut 4252275c64 InputTextMultiline: fixed an issue calculating lines count when inactive, no word-wrap, and ending with a \n.
Amend 1e52e7b90c (#3237, #952, #1062, #7363)
2026-03-18 20:12:14 +01:00
ocornut 6abe65aac6 InputText: amend fix to avoid PVS-Studio sort of rightful false positive. Amend f4c2f50. (#9174)
Checking for state != NULL in the two othr functions where state is already deferenced was misleading.
imgui_widgets.cpp:4496:1: error: V595 The 'state' pointer was utilized before it was verified against nullptr. Check lines: 4496, 4500.
imgui_widgets.cpp:5273:1: error: V595 The 'state' pointer was utilized before it was verified against nullptr. Check lines: 5273, 5289.
2026-03-18 18:57:02 +01:00
ocornut f4c2f50896 InputText: fixed a crash when handling ImGuiInputTextFlags_CallbackResize. (#9174)
Fix/amend cb3b7ff.
2026-03-18 18:37:04 +01:00
ocornut 27cacb0e30 Fixed GetForegroundDrawList()/GetBackgroundDrawList() per-viewport buffers not being collected/ (#9303) 2026-03-18 16:48:18 +01:00
ocornut 709be8c495 Discard/GC of ImDrawList buffers for unused windows favor restoring them to ~Size*1.05 instead of Capacity when awakening again. (#9303)
+ made "GC now" button process even active windows.
2026-03-18 15:34:12 +01:00
ocornut 994ca12b29 Fixed warning. (Amend 1677236) 2026-03-16 18:51:38 +01:00
ocornut 6464276b62 InputText: cleanup/rework old comments + remove unnecessary indent in callback and main block setting apply_new_text.
Amend 00f12b9a0, 3349296370 etc.
2026-03-16 18:42:28 +01:00
ocornut 16772365e2 Moved ImGuiButtonFlags_AllowOverlap from imgui_internal.h to imgui.h + standardize comments. 2026-03-16 18:42:22 +01:00
ocornut 8957b3df03 InputScalar: minor rework to facilitate incoming change. Intended to have no side-effects. 2026-03-16 11:41:01 +01:00
ocornut fd752d8357 InputText: Fixed a glitch when using ImGuiInputTextFlags_ElideLeft where the local x offset would be incorrect during the deactivation frame. (#9298) 2026-03-13 16:32:39 +01:00
ocornut d02c645e38 Nav: short Gamepad Activation press on InputText() always activate with Text Input mode. 2026-03-13 15:07:46 +01:00
ocornut 49ee151ed6 Nav: pressing gamepad north button activates context menus.
+ update ShowUserGuide().
2026-03-13 15:07:46 +01:00
ocornut b76ab6232d Nav: changed Gamepad mapping for "Activate with Text Input" action from FaceUp press to FaceDown long press. (#8803, #787) 2026-03-13 15:07:46 +01:00
ocornut 6dbda97fee Backends: OpenGL2, OpenGL3, SDLRenderer3: replaced erroneous IM_ASSERT(tex->TexID == 0) calls. (#9295, #9293)
Amend/fix 0db5919 which revealed this.
2026-03-12 19:29:39 +01:00
ocornut 90743d3112 Nav: allow ImGuiKey_Menu or Shift + F10 to work on Begin()...BeginPopupContextItem() sequence aiming at title bar. (#8803, #9270) 2026-03-12 19:12:47 +01:00
ocornut 14a500a476 Nav: allow ImGuiKey_Menu or Shift + F10 to open context menus. Rework with polling in NavUpdate(). (#8803, #9270)
This might be a little less flexible but removes burden from the higher-frequency calls.
2026-03-12 18:52:42 +01:00
ocornut 6cc99a6e2b Nav: allow ImGuiKey_Menu or Shift + F10 to open context menus. Amends. (#8803, #9270)
This doesn't attempt to move the shortcut polling in NavUpdate() yet.
2026-03-12 18:30:05 +01:00
ocornut 0db591935f Changed default ImTextureID_Invalid value to -1 instead of 0 +added comments. (#9293, #8745, #8465, #7090) 2026-03-12 14:44:15 +01:00
ocornut 1fbab15c0a Focus: fixed fallback "Debug" window temporarily taking focus and setting io.WantCaptureKeyboard for a frame. (#9243) 2026-03-11 21:59:44 +01:00
ocornut 378cb85bf0 Amend missing Changelog entry. (#9115) 2026-03-11 21:02:46 +01:00
ocornut 5aa7d61139 InputText: reworked so that io.ConfigInputTextEnterKeepActive reactivate in order for e.g. IsItemDeactivatedAfterEdit() to work. Amends. (#9001, #9115)
Rework. Fixes dangling InputTextReactivateId in case of field being hidden on activation.
2026-03-11 20:33:18 +01:00
ocornut 5dd56d4bb5 Demo: add an option to enable ImGuiSliderFlags_ColorMarkers in Multi-Components section + fixed warnings. 2026-03-09 18:01:37 +01:00
ocornut 9e6b888626 Examples: reorder builds items to favor main.cpp and backend failing earlier. 2026-03-09 16:19:22 +01:00
ocornut 83fa0ae263 Backends, Examples: removed Emscripten < 4.0.10 support. Removed IMGUI_IMPL_WEBGPU_BACKEND_WGPU. Amends. (#9281, #8381) 2026-03-09 16:18:59 +01:00
ocornut ca166c0e5f Docs: imgui_manual -> imgui_explorer.
Amend 650eca3.
2026-03-09 14:24:03 +01:00
ocornut 41765fbda7 Scrollbar: extend hit-testing bounding box when window is sitting at the edge of a viewport. (#9276) 2026-03-06 18:03:27 +01:00
ocornut 11acd9f5cb Sliders: extracted code into TempInputIsClampEnabled() helper for reuse.
Toward #9164, #76
2026-02-27 00:04:51 +01:00