Skip to content

Commit

Permalink
Squashed 'lib/imgui/' changes from 55d35d83..a8df192d
Browse files Browse the repository at this point in the history
a8df192d Version 1.89.1
27c58c39 Scrolling, Focus, Combo: fixed SetKeyboardFocusHere()/SetItemDefaultFocus()/ScrollToRectEx() during an appearing form not centering item. (#5902, #2812, #4242, #2900)
233d7ad3 Backends: WebGPU: fixed validation error with default depth buffer settings. (#5869, #5914)
856c6314 Drag and Drop: fixed GetDragDropPayload() returning a non-NULL value before payload is submitted.  (#5910, #143)
ffe0abbf Internals: added basic localization system (#5895)
c3d9f8ee Layout: fixed End()/EndChild() incorrectly asserting if users manipulates cursor position inside a collapsed/culled window and IMGUI_DISABLE_OBSOLETE_FUNCTIONS is enabled. (#5548, #5911)
3a685749 ColorEdit: fixed label overlapping when using style.ColorButtonPosition == ImGuiDir_Left. (#5912)
16476f99 Backends: GLFW: cancel out errors emitted by glfwGetKeyName() when a name is missing. (#5908)
5bb28749 Version 1.89.1 WIP
7bee9a8f Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code from accessing keys. (#5888, #4921, #456)
d60985df Inputs: fix moving a window or drag and dropping from capture mods. (#5888, #4921, #456)
83cee9e0 InputText: replaced some uses of SetKeyOwner() + IsKeyPressed() with Shortcut()
81160fee Version 1.89
a582d92c Inputs: modulate wheel lock timer for small amount of wheeling. Slightly lower timer. (#3795)
03d3343e Docs: Update FAQ.md explaining how to enable hidpi for Windows app. (#5880)
00b63708 Backends: WebGPU: fixed rendering when a depth buffer is enabled. (#5869)
7380b981 Scrolling: Exposed SetNextWindowScroll() in public API. (#1526)
cda26635 Inputs: refacotr/extract CalcRoutingScore() out of SetShortcutRouting(), easier to follow with early returns.
b8b0f9d0 Backends: OpenGL3: Reverted use of glBufferSubData(). (#4468, #4504, #3381, #2981, #4825, #4832, #5127)
f0ad8105 Inputs: tweak comments, typos.
637ddfce Inputs, Nav: made it possible to remap CTRL+Tab (#4828, #3255, #5641)
6c9c4879 Inputs: made Shortcut() routing id defaults to current FocusScope ID. (#456, #2637, #3724)
d576724b Inputs: made ImGuiInputFlags_RouteFocused the default for Shortcut(). (#456, #2637, #3724)
4d6a9ef9 Inputs: added routing priorities. (#456, #2637, #3724)
7ff2d335 Inputs: added wip/experiment routing system: Shortcut(), RoutingFocused policy, SetShortcutRouting(). (#456, #2637, #3724)
c59ebb2d Inputs: added basic Shortcut() function - no routing yet. (#456)
8c95c084 Inputs: changed specs of SetKeyOwner() to alter OwnerCurr immediately.
4448d975 Inputs: added wip/internal Input Owner system. (#456, #2637, #2620, #2891, #3370, #4828, #5108, #5242, #5641)
44d98bfd Fix build with IMGUI_DISABLE_DEBUG_TOOLS
529cba19 Debug Tools: Added DebugLocateItem()/DebugLocateItemOnHover() to visually locate items when hovering a 0xXXXXXXXX value. (#5855, #2673, #4631)
7109f32f Internals: tidying up and stripping more of focus scope code.
9f66a3a9 Internals: rework FocusScope system, current scope doesn't need to be in window + child doesn't inherit.
1eac0024 InputText: copy and select all shortcuts don't need repeat (tho it was harmless0
90e9465f  Window: Fixed position not being clamped while auto-resizing (#5843)
6e9dfe1d Window: Auto-fit size takes account of work rectangle (menu bars eating from viewport). (#5843)
86f2af2b Backends: OSX: Fixed mouse coordinate before clicking on the host window. (#5842)
c2694ef7 Examples: Android: Using LoadIniSettingsFromMemory() / SaveIniSettingsToMemory() to save in appropriate location for Android. (#5836)
22bcfca7 IO: Clear AppFocusLost in EndFrame() in order to allow backend or application code to poll and react to it
a241dc79 IO: Fixed AddFocusEvent(false) to also clear MouseDown[] state. (#4921)
a61bbdc2 Commented out redirecting OpenPopupContextItem() which was briefly the name of OpenPopupOnItemClick() from 1.77 to 1.79.
9db6b1a0 Backends: Win32: minor tidying up. (#5819)
baea25e6 Drag and Drop: extracted a RenderDragDropTargetRect() function (#1603)
431fc6a7 Internals: using ItemAdd() consistently for internal items: windows & tables resize grips/borders, ScrollbarEx().
178aee4b Debug Tools: Debug Log: add and use ImGuiTextLineIndex.
578df14f CI: Remove left-over discord stuff.
f6bd7c8e Debug Tools: Item Picker: remove IMGUI_DEBUG_TOOL_ITEM_PICKER_EX since it doesn't work on non-ItemHoverable() items anyway.  (#2673)
bc918404 Internals: using ImToUpper() since std one does too many things.
9a35bfea Internals: added temporary ImGuiItemStatusFlags_Visible (used internally - please do not use).
de1593d5 Backends: DX12: Fixed stale comments. (#5798)
e3fa56ae BeginMenu(): Menus: Fixed a one-frame issue where SetNextWindowXXX data are not consumed by a BeginMenu().
5ac94ad8 Window: Fixed an issue where uncollapsed a window would show a scrollbar for a frame.
ab6e48b8 Backends: GLFW: Perform a dummy glfwGetError() read to cancel missing mouse cursors errors. (#5785)
08752b37 Menus, Popups: Experimental fix for issue where clicking on an open BeginMenu() item called from a window which is neither a popup neither a menu used to incorrectly close and reopen the menu. (#5775)
81176737 Menus: Fixed using IsItemHovered()/IsItemClicked() on BeginMenu(). (#5775)
3920b1c7 Removed commented out old flags from when Tables was a branch.
b15347cb Tables: activating an ID (e.g. clicking button inside) column doesn't prevent columns output flags from having ImGuiTableColumnFlags_IsHovered set. (#2957)
3e8d1981 Removed runtime patching of obsolete/invalid "%f"/"%.0f" types of format strings for DragInt()/SliderInt().
5196bd15 Docs: Update outdated code sample (#5766)
c54230d1 Backends: Using nullptr instead of NULL. (#5760, #4537) + fix additional warnings.
8a44c31c Scrolling: Further reduce unrelease mouse-wheel locked window timer + misc refactor (#2604, #3795, #4559)
dfa1bb0a Backends: OSX: Fixed mouse inputs on flipped views. (#5756)
85a368b5 Fixed ImGuiWindowFlags_UnsavedDocument clipping label in docked windows with no close button. (#5745)
c7d3d22a Scrolling: Mitigated issue where multi-axis mouse-wheel inputs (usually from touch pad events) are incorrectly locking scrolling in a parent window. (#4559, #3795, #2604)
80a870a3 Scrolling: Tweak mouse-wheel locked window timer so it is shorter but also gets reset whenever scrolling again (#2604) + small refactor
282b2b5a Backends: Vulkan: Fix building with VK_NO_PROTOTYPES. (#914, #5738).
a588f00f Backends: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symetry. (#914, #5738).
58842198 imgui_freetype: Assert if bitmap size exceed chunk size to avoid buffer overflow. (#5731)
f2a522d7 ImDrawList: Not using alloca() anymore, lift single polygon size limits. (#5704, #1811)
cc5058e5 IO: Filter duplicate input events during the AddXXX() calls. (#5599, #4921)
fac8295d IO: remove ImGuiInputEvent::IgnoredAsSame (revert part of 839c3100), will filter earlier in next commit. (#5599)
9e7f460c Fixed GetKeyName() for ImGuiMod_XXX values, made invalid MousePos display in log nicer.  (#4921, #456)
07494533 Menus, Nav: Fixed not being able to close a menu with Left arrow when parent is not a popup. (#5730)
9f6aae3b Nav: Fixed race condition pressing Esc during popup opening frame causing crash.
bd2355a0 Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple BeginMenu() call with same names). (#1207)
3532ed16 Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item in parent when the parent is not a popup. (#5730)
d5d70506 Various comments
e74a50f5 Added GetGlyphRangesGreek() helper for Greek & Coptic glyph range. (#5676, #5727)
d17627b9 InputText: leave state->Flags uncleared for the purpose of backends emitting an on-screen keyboard for passwords. (#5724)
0a7054c7 Backends: Win32: Convert WM_CHAR values with MultiByteToWideChar() when window class was registered as MBCS (not Unicode). (#5725, #1807, #471, #2815, #1060)
a229a7f3 Examples: Win32: Always use RegisterClassW() to ensure windows are Unicode. (#5725)
e0330c16 Fonts, Text: Fixed wrapped-text not doing a fast-forward on lines above the clipping region. (#5720)
4d4889bf Refactor CalcWordWrapPositionA() to take on the responsability of minimum character display. Add CalcWordWrapNextLineStartA(), simplify caller code.
5c4426c5 Demo: Fixed Log & Console from losing scrolling position with Auto-Scroll when child is clipped. (#5721)
12c02468 Removed support for 1.42-era IMGUI_DISABLE_INCLUDE_IMCONFIG_H / IMGUI_INCLUDE_IMCONFIG_H. (#255)
73efcec5 Examples: disable GL related warnings on Mac + amend to ignore list.
a725db17 Comments for flags discoverability + add to debug log (#3795, #4559)
325299f9 Backends: OpenGL: Add ability to #define IMGUI_IMPL_OPENGL_DEBUG. (#4468, #4825, #4832, #5127, #5655, #5709)
56c3eaed ImDrawList: asserting on incorrect value for CurveTessellationTol (#5713)
04316bd2 ColorEdit3: fixed id collision leading to an assertion. (#5707)
c261dac0 Demo: moved ShowUserGuide() lower in the file, to make main demo entry point more visible + fix using IMGUI_DEBUG_LOG() macros in if/else.
51bbc706 Backends: SDL: Disable SDL 2.0.22 new "auto capture" which prevents drag and drop across windows, and don't capture mouse when drag and dropping. (#5710)
7a9045dd Backends: WGPU: removed Emscripten version check (currently failing on CI, ensure why, and tbh its redundant/unnecessary with changes of wgpu api nowadays)
83a0030c Added ImGuiMod_Shortcut which is ImGuiMod_Super on Mac and ImGuiMod_Ctrl otherwise. (#456)
fd408c97 Renamed and merged keyboard modifiers key enums and flags into a same set:. ImGuiKey_ModXXX -> ImGuiMod_XXX and ImGuiModFlags_XXX -> ImGuiMod_XXX. (#4921, #456)
f359dca0 Misc input related changes to facilitate upcoming merges.
85f327d8 InputText: added ImGuiInputTextFlags_EscapeClearsAll (#5688)
60ab8a94 InputText: fixed minor one-frame selection glitch when reverting with Escape + disable cursor rendering on revert frame. (#3008)
4b522e14 Experiment: ImGuiKey is now a typed enum, allowing ImGuiKey_XXX symbols to be named in debuggers. (#4921, #4537)
5c8041b4 Update gif in README + font names in examples
2736af6b Minor optimization of ImFontAtlasBuildMultiplyRectAlpha8() + README tweaks.
efe4a372 Fix typo (#5691)
1dd964f8 Popups & Modals: Fix (amended) somehow undocumented Popup+Child behavior (useful for e.g. #718, #4461 and probably other things)
440f2576 Popups & Modals: fixed nested Begin() being erroneously input-inhibited. (useful for e.g. #718, #4461 and probably other things)
472f8013 Moved version number higher up in imgui.h to increase visibility
2b1d8e3e Fix more typos in sources and docs (#5681)
44e3ba11 Demo: moved "Mouse Cursors" section. moved "Filtering" section.
673df619 More compact README
1816c524 Examples: updated VS projects with .natvis file under imgui/
e8178bf8 Update README.md
a0e1591a Fix more typos (#5679)
6c3c9cea Fix typos in source comments (#5675)
091445a4 Examples: added all SDL examples to VS solution.
513c1ba9 Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)' (#1057)
cb48c81a Tabs: Fix initial tab state. Amend 3e6f948( (#5572)
52d9ee0d Tabs: Fixed ShrinkWidths() redistribution of remainder leading to infinite bug (second fix). (#5652, #5262)
3e6f9488 Tabs: Enforcing minimum size of 1.0f, fixed asserting on zero-tab widths. (#5572)
b137f31b Tabs: Fixed ShrinkWidths() redistribution of remainder leading to infinite bug + over redistribution. (#5652)
2171375f InputText: clarified that callbacks cannot modify buffer when using the ReadOnly flag.
9e7c0f98 Fix typos in docs (#5649)
b87e58fa ImGui::InputText: added support for shift+click style selection. (#5619)
fe62927b Backends: OpenGL: Update comments. (#4445, #5642, #4649)
9e1ccf8f Commented out redirecting functions/enums names that were marked obsolete in 1.77 and 1.78 (June 2020): (#3361)
edcd5b11 Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548)
5867a43d Backends: GLFW: Honor GLFW_CURSOR_DISABLED by not setting mouse position. (#5625)
9445776d Nav: Fixed an issue opening a menu with Right key from a non-menu window.
03fc9a0b Menus: Fixed gaps in closing logic. (#5614)
b3ea01d8 Menus: Fix sub-menu inhibition stopping working in some cases. (Amend WIP) (#2517, #5614, noticed in #5546)
a502ceb0 Added commented out older obsolete names (1.42 to 1.52)
2569c647 Demo: Improved "Constrained-resizing window" example, more clearly showcase aspect-ratio. (#5627, #5618)
7f251439 Better error reporting for PopStyleColor()/PopStyleVar() + easier to recover. (#1651)
747c9a7a IsKeyPressed(), IsMouseClicked(), GetKeyPressedAmount(): add a (normally unnecessary) test for ->Down next to ->DownDuration tests, facilitating the use of key eating mechanism.
e13913ed IsItemHovered: Added ImGuiHoveredFlags_DelayNormal, ImGuiHoveredFlags_DelayShort, ImGuiHoveredFlags_NoSharedDelay. (#1485)
b3b3a071 Nav: Fixed regression in e99c4fc preventing CTR+Tab to work without NavEnableKeyboard (#5504, #4023);
2c1262b4 ImVector: fix undefined behaviour during copy operator if source vector is null. (#5608)
72096bf6 Clipper: simplify code and remove cases where true is returned with empty display range as an extra step.
07b9999d Debug Log: added 'Clipper' events logging.
4eb90669 Clipper: extract code into a ImGuiListClipper_StepInternal() to facilitate debugging. Moved clipper End() call to outer layer, stopped heretic use of comma operator.
21b5fac5 Backends: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount' (#5603)
d357e850 TestEngine: revert part of 5b0510c as IMGUI_TEST_ENGINE_ITEM_ADD() woul see an erreneous hierarchy.
7f4b477d CI: Update ubuntu version (#5598)
cdebd70e Fix PVS-Studio static analyzer warning for "buffer underflow"
5b0510c5 TestEngine: facilitate aiming at InputScalar() using wildcards + removed unnecessary IDStack.size hack (require TestEngine latest)
ef6ba0d8 Misc: allowing override of IM_TABSIZE (#5593)
26856507 InputText: numerical fields automatically accept full-width characters (U+FF01..U+FF5E) by converting them to half-width (U+0021..U+007E).
a396233c Platform IME: Windows: Revert 133bbafa and 29a8ee08 as regression until new results comes. (#2589, #5535, #5264, #4972)
839c3100 Debug Log: Added IO events logging.
133bbafa Platform IME: Windows: Fixed a call to ImmAssociateContextEx() leading to freeze on some setups. (#2589, #5535, #5264, #4972)
c911901b Fix ImGuiIO docs and default values (#5540)
0a4ddd72 Fix being unable to mouse wheel while dragging a payload (fix 1480bc5, #4921, #2891)
4a2ae06c Changed signature of ImageButton() function: Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. (#5533, #4471, #2464, #1390).
0e95cf0d Fix appending to windows causing a child window to be inserted to g.WindowsFocusOrder which eventually causes a crash. (#5515, #3496, #4797)
e926a664 TabBar: Allow closing entire TabBar (possible docking only) when it contains user-appended buttons. (#5515)
e99c4fc6 Nav: fixes keyboard/gamepad nav actions running without the corresponding config flags (#5504). Fixes 8b8a61b. #4921, #4858, #787, #1599, #323)
2d38bc99 Internals: renamed recently added ImGuiInputReadFlags to ImGuiInputFlags. (Amend 8b8a61b)
6ab5fd1d Tables,Columns: fixed a layout issue where SameLine() prior to a row change would set the next row in such state where subsequent SameLine() would move back to previous row.
8731cc29 Examples: Vulkan: Add c++ version to CMakeLists (#5459)
1480bc5d Added ImGuiKey_MouseXXX aliases. (#4921) Reworked SetItemUsingMouseWheel() to use this for ActiveId. (#2891)
105bb3ef Legacy: clear g.ActiveIdUsingNavInputMask when active id is clear + Internals: added helpers GetKeyChordName(), ImGuiModFlags_All.
8b8a61bd Removed io.NavInputs[] and ImGuiNavInput enum. Kept inline redirection code. (#4921, #4858, #787, #1599, #323)
a7a25ee1 Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift. (#2673)
92d0924b Fixed build with IMGUI_DISABLE_OBSOLETE_KEYIO + made all examples comments refer to StyleColorsLight().
4711b9b0 Add trailing commas to enum (to simplify the diff/patch of further additions) (#4537)
90ef3278 Reordered keys representing directions to follow a consistent L/R/U/D order everywhere. (#2625, #4921, #3724)
f9ccdba3 Nav: Fix regression 93f02ee + Internals: Remove ImGuiNavReadMode_Pressed, ImGuiNavReadMode_Released.
93f02ee0 Nav: Fixed moving window with gamepad or keyboard when running at very high framerate + removed ImGuiNavDirSourceFlags_RawKeyboard.
82e10f1b Backends: Metal: Add dispatch synchronization. (#5447)
0b2da679 Internals: clarified that GetInputTextState(0) can not return a pointer. Replaced a use of __APPLE__ with io.ConfigMacOSXBehaviors.
467a1cd4 Misc: io.Framerate moving average now converge in 60 frames instead of 120. (#5236, #4138)
67410d53 Backends: Metal, OSX: Various fixes (ARC / Autorelease fixes with metal-cpp and extensions). (#5403)
609b935a InputText: added experimental io.ConfigInputTextEnterKeepActive feature to make pressing Enter keep the input active and select all text.
0afc6cd3 Internals: InputTextEx() renames for correctness. enter_pressed -> validated,  is_validate_enter -> is_enter_pressed
873e9d35 Internals: renamed TreeNodeBehaviorIsOpen() to TreeNodeUpdateNextOpen(). Added internal TreeNodeSetOpen(id). (#5423)
24dfe6db Version 1.89 WIP
088ddef9 Tables: extracted some code into TableBeginContextMenuPopup() for easier reuse for appending into context menu.
9aae45eb Version 1.88
d51e5d28 TabItem: revert support for SetNextItemOpen(true) at it creates too much ambiguity with p_open/close button vs Selected state. (#5262)
c4b91017 TabBar: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their initial width more precisely.
4b972961 TabBar: TabItem() now reacts to SetNextItemWidth() and SetNextItemOpen(true). (#5262)
d3fd2630 Sliders: An initial click within the knob/grab doesn't shift its position. (#1946, #5328) + Adjust default GrabMinSize.
f27af1b2 Internals: SliderBehaviorT: Minor refactor, clearer 0.0/1.0 early out. Should be no-op from user's point of view.
90e8404a Update README.md
37a07858 Nav: Fixed inability to cancel nav in modal popups. (#5400)
07efd7cc Renamed IMGUI_DISABLE_METRICS_WINDOW to IMGUI_DISABLE_DEBUG_TOOLS.
08572189 MovingWindow auto-cancelled if active id is stolen (instead of ill-defined bahavior + assert in docking).
27343efb Nav, Focus: Changed SetKeyboardFocusHere() to not behave if a drag or window moving is in progress + move KeepAliveID() call from Scrollbar() to ScrollbarEx()
ddcff103 Settings: Fixed some SetNextWindowPos/SetNextWindowSize API calls not marking settings as dirty.
6cac48df Drag, Slider: rework slightly or CTRL+Click or SetKeyboardFocusHere() will show 1 change of active id in the log (rather than a set,clear,set sequence)
dd285008 Debug: Add more log. Reworked IMGUI_DEBUG_PRINT IMGUI_DEBUG_PRINTF. Added internal IsDragDropActive() helper.
2ed9e21e Nav, Internals: wrap changes to g.NavWindow into a helper function to help track/log changes.
1d6e34f3 Debug: Added ShowDebugLogWindow().
ec2c805e Backends: support for unity builds for dx10/dx11/dx12 backends (#5387)
076d8fc8 Nav: Fixed issues with nav request being transferred to another window when calling SetKeyboardFocusHere() and simultaneous changing window focus. (#4449)
0b1bcfcc Menus: Separate menu sets by nav layer. (#3496, #4797) + Demo: Remove incorrect and useless suggestion to use PushID().
a35e8769 InputText: Amends and tidying up: Fixed undo/redo state corruption when editing buffer in user callback. (#4947, #4949)
530332df InputText: Fixed undo/redo state corruption when editing buffer in user callback. (#4947, #4949)
23a785ae Internals: wrapped used of g.TempBuffer into ImFormatStringToTempBuffer/ImFormatStringToTempBufferV helpers.
64d6c305 InputText: Fixed an undo-state corruption issue when editing buffer before reactivating item. (#4947) + Metrics: Added "InputText" section.
74f02703 Misc comments + Demo: use IsItemVisible() when using direct ImDrawList calls.
65c4c0a4 IO: Added SetAppAcceptingEvents() function (#4921, #4858)
17b8c3b6 Demo: Removed redundant window flag (#5367)
7354009a Backends: Metal: Fixed null dereference inside command buffer completion handler. (#5363, #5365)
74f7ac04 Misc: Fix font compressor utility warnings. (#5359)
f58bd817 Tables: Fix drawcall merging of last column. (#4843, #4844)
e23c5edd Settings: Fixed out-of-bounds read when .ini file on disk is empty. (#5351)
697ce2d6 InputText: Fixed a one-frame display glitch where pressing Escape to revert after a deletion would lead to small garbage being displayed for one frame. (#3008)
5139fb7e Docs: Add index
ae2fb557 Docs: Update templates with link to Contributing guidelines. Add numerical version number in demo. Moved. (#5337)
814ecedd Docs: creates CONTRIBUTING.md (#5337)
e5b2286c Backends: OpenGL3: Fix apple TARGET_OS_* not defined warning. (#5321)
ca222d30 Backends: OpenGL: Partially revert 1.86 change of using glBufferSubData(): now only done on Intel GPUs. (#4468, #3381, #2981, #4825, #4832, #5127)
7bf07d25 Renamed CaptureMouseFromApp() and CaptureKeyboardFromApp() to SetNextFrameWantCaptureMouse() and SetNextFrameWantCaptureKeyboard(). Added demo. (#5304, #4831, #4480, #533)
cb56b0b2 Removed leftover KeepAliveID() call in GetIDWithSeed() variant. (#5181) + doc tweaks.
e346059e IO:  Fixed input queue trickling of mouse wheel events. (#4921, #4821)
60bea052 Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states. (amends)
b7686a88 Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states.
507a8735 DrawList: Circles disappear when using a radius < 0.5f (#3491)
9e0517a1 DrawList: Fixed divide-by-zero or glitches with Radius/Rounding values close to zero. (#5249, #5293, #3491)
9779cc2f Internals: shallow changes to simplify diff of upcoming commits. Should have no side-effect.
4db55f88 Changed FONT.md edit to blob (#5290)
d768b8c8 Backends: Metal: Align code more closely with other backends. OSX: Add missing return for mouse pos events.
55f89893 Docs update, binaries link + Backend: Allegro: fix warning (#5281)
6d27fecc Debug: added DebugTextEncoding() to help diagnose between text encoding issues and font loading issues. Simplified code + extracted DebugNodeFontGlyph().
e6688908 Debug: added encoding viewer in Metrics.
e66fc220 Backends: OSX: Removed ImGui_ImplOSX_HandleEvent() from backend API. Move event tracking (desktop only) to OSX backend. (#4821)
26f81780 Backends: Vulkan: Don't use VK_PRESENT_MODE_MAX_ENUM_KHR as specs state it isn't part of the API. (#5254)
d58b8414 Backends: OSX, Metal: Tweaks. Use preferred method of obtaining a timestamp. (#4821)
3e5dde9a Tables: Fixed incorrect auto-fit of parent windows when using non-resizable weighted columns. (#5276)
709bc03d Backends: GLFW: fixed ImGui_ImplGlfw_TranslateUntranslatedKey() for lower case letters on OSX (#5260, #5261)
314c7bd1 Internals: renamed ImGuiInputReadMode to ImGuiNavReadMode (internals) to avoid ambiguity with upcoming flags. + minor tweak
e54db4ee Backends: OSX, Metal: Store backend data in a per-context struct, allowing to use these backends with multiple contexts. (#5203, #5221, #4141)
04689979 Examples: Emscripten+WebGPU: Fix for latest spec rename of WGPURenderPassColorAttachment::clearColor to ::clearValue (#3632)
b5b704d3 Windows: Fixed first-time windows appearing in negative coordinates. (#5215, #3414)
5b29d147 Layout: Fixed mixing up SameLine() and SetCursorPos() together. SameLine() is a stateful.
eda7792b Internals: swapped blocks in TextEx() to make it easier to step through common cases. Tweak demo.
28b2089e Internals: moved ItemSize() variant to inline + comment. + Tidying up todo list (#5191)
14ca75d4 Backends: SDL, OpenGL3: Small fixes for AmigaOS4. (#5190) + Allow redefining IM_COL32_XXX layout macros. (#5190, #767, #844)
088487a3 Nav: Fixed nav movement in a scope with only one disabled item from focusing the disabled item. (#5189)
fc203c7d Minor fix to sastisfy PVS-Studio warning. (amend, 3nd attempt: this is a false positive from PVS studio)
6d15a506 Internals: removed GetIDNoKeepAlive() now that it is the same as GetID(). (#5181)
90386780 Misc: Fixed calling GetID("label") _before_ a widget emitting this item inside a group (such as InputInt()) from causing an assertion when closing the group. (#5181).
937d0733 Updated comment about Edit.NavigateTo to Edit.GoToAll. (#5179)
f7f30476 Added comments about requirement for bilinear filtering. (#5156, #3245) + Backends: SDL_Renderer: Explicitely call SDL_SetTextureScaleMode(). (#4927)
2c03aac6 Renamed ImGuiKeyModFlags to ImGuiModFlags (Breaking but technically never advertised type)
a472e883 InputScalar: Automatically allow hexadecimal/scientific input when format is adequate.
c521883b Sliders, Drags: Fixed manual input when using hexadecimal display format string. (#5165, #3133)
508c9aaf Sliders, Drags: Fixed using hexadecimal display format strings (pretty much never worked). (#5165, #3133)
f5c5926f Internals: remove obsolete variants of RenderArrow(), RenderBullet(), ImHash() + misc comments.
88fbc31e stb_truetype: fix a division by zero (unused chain of result, but triggering debuggers). (#5139, #5075)
2747a8ca Turned ImVec2 to const ref to RenderChar(), RenderText(), ColorButton(), PushClipRect(). for consistency. Comments about polygon filling winding order.
0dec4307 Menus: Adjusted BeginMenu() closing logic so hovering void or non-MenuItem() in parent window always lead to menu closure.
2d76b09d Backends: Metal: Conditional check, amend 7602277 (#5122, #5123)
1ba29050 Update README, quote, mission statement
3587ee49 Viewports: store Viewport field in ImGuiWindow to facilitate using code accross branches + fix PVS warnings.
dfbe938e InputText: Fixed pressing Tab emitting two tabs characters. (#2467, #1336)
16ddc169 Fixed creating multiple-context (regression in 28ba54a). (#5135)
1ad8ad62 Backends: GLFW: Fixed keyboard modifiers events being reported incorrectly on Linux/X11.
7d7bf993 ImDrawList: Fix texture-based anti-aliasing with RGBA textures (#5132, #3245)
3c078795 Backends: OSX: Inputs: Monitor NSKeyUp events to catch missing keyUp for key when user press Cmd + key (#5128)
c5f67218 Backends: SDL: Fix multi-viewport dragging issue with SDL on some systems. (v2 for master, using bd->MouseButtonsDown == 0) (#5012, #5082)
7602277c Backends: Metal: Remove weak ref (#5122, #5123)
31e77eac Backends: SDL: Add extra mouse buttons handling (#5125)
6fae2967 Examples: Emscripten: Fix build. (#3632)
28ba54a3 Internals: add AddSettingsHandler(), RemoveSettingsHandler().
fd06ed83 Misc: tweaks + fix warnings on backends withtout -wno-memaccess (#4995, #5104)
0cff5ac5 Updated stb_textedit.h from 1.20 to 1.26 (many fixes). (#5075)
de451d44 Updated stb_textedit.h from 1.13 to 1.14. (#5075)
279db558 Updated stb_rect_pack.h from 1.00 to 1.01. (#5075)
3deb92c2 Add IMGUI_STB_SPRINTF_FILENAME to support custom stb_printf.h include path (#5068, #2954)
0f149335 Tables: Fixed incorrect border height used for logic when resizing one of several synchronized instance of a same table ID, when instances have a different height. (#3955, #3565)
6315716f Backends: Glut: Fix comparison operator precedence.
1e18da5c Backends, Examples: Add comments about using WndProc handler and WantCaptureXXX flags. (#5061)
54fb051e ColorEdit: Fixed text baseline alignment after a SameLine() after a ColorEdit() with visible label.
fa2b318d IO: Fixed input queue trickling of interleaved keys/chars events when InputText() is not active. (#4921, #4858)
5659db55 IO: Fixed backward-compatibility accesses to io.KeysDown[]. (#4921, #4858)
a61ca097 Backends: OSX: Fix typo in scrolling event handler. (#5036)
dca527be Clipper: Assert on extraneous calls to Step(). (#4822) + Demo tweak.
29d462eb Set HoveredID even when g.NavDisableMouseHover is set by gamepad/keyboard navigation. This will facilitate the use of future InputOwner API based on HoveredID/ActiveID.
421e73e6 Fix an assert in metrics.
d9e60d29 Clipper: Fixed a regresssion when not calling End() + calling End() twice as well. (#4822)
5c8f8d03 ImVector: Fixed erase() with empty range. (#5009) amend/fix b6b8f66
2dfa71fa Inputs: Fixed IsMouseClicked() repeat mode rate being half of keyboard repeat rate. Using KeyModAlt. Removed KeyModsPrev.
7ff41a78 Fonts: binary_to_compressed_c.cpp gained -nostatic option (#5021)
8d390636 CI: Fixes for OSX + explicitely request C++11.
b6b8f663 ImVector: Fixed erase() with empty range. (#5009)
5854da10 Declare other structures as constexpr (#4995) + rename ImGuiInputEventType_Char to ImGuiInputEventType_Text for consistency with event structure.
71f98dd0 Declare ImVec2 and ImVec4 constructors as constexpr (#4995)
955aacfb GCC: Disable deprecated-enum-enum-conversion for gcc as well (#4997)
4691fa0e ImDrawList: PthArcTo: Add small tolerance when comparing angles (#4993)
aa79d0cd Stack Tool: Added option to copy item path to clipboard. (#4631)
88de9820 Version 1.88 WIP
97b1abd6 Internals: rework RenderMouseCursor() signature so we can use it in docking branch more naturally.
c71a50de Version 1.87
e52bb147 Backends: GLFW: Added ImGui_ImplGlfw_InstallCallbacks()/ImGui_ImplGlfw_RestoreCallbacks(). (#4981)
732bc205 Backends: GLFW: Handle spurious leave/enter sequences apparently submitted by X11/GLFW combo. (#4984)
40fd163a Backends: OpenGL3: Fix OpenGL ES2 includes on Apple systems.
2554b512 Backends: OSX: Forward keyDown/keyUp events to OS when unused by Dear ImGui.
c6cab1f3 Backends: SDL: Added SDL_Renderer* parameter to ImGui_ImplSDL2_InitForSDLRenderer(). Use SDL_GetRendererOutputSize() instead of SDL_GL_GetDrawableSize() when bound to a SDL_Renderer. (#4927)
c39192ba Backends: SDL_Renderer: Fix texture atlas format on big-endian hardware (#4927)
43177324 Backends: GLFW: Fixed miss untranslation of keypad keys. (#4921, #452)
6f73dbea TestEngine: submit window data to item system.
35e197f4 TestEngine: fixed InvisibleButton() and ArrowButton() not calling the info macro.
551ab84c Backends: OSX: Fix building with old Xcode versions.
422902db Correct typos (#4954, #4955), use IM_STATIC_ASSERT now that old pre-C++11 macro has been obsoleted.
64d910ad Removed IMGUI_API from inline templated classes. (#4962)
49e38a5b Revert moving ImGuiKeyModFlags to internal.h (amendc906c65)
9def2b04 IO: Added simple (incomplete) filter for duplicates to reduce data spam. (#4921, #4858)
5429f0f6 Backends: OSX, Android: Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. (#4921, #4858)
c906c65c (BREAKING) Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. Backends: update most. (#4921, #4858)
718daa15 Rendering: defer responsability of calling _PopUnusedDrawCmd() later so RenderDimmedBackgrounds()/RenderMouseCursor() don't need to deal with the side-effects (#4857, #4317)
075f4ac6 Don't merge ImDrawCmd which have had their IdxOffset changed to not be sequential. Fixed CTRL+Tab into an empty window causing artefacts on the highlight rectangle due to bad reordering on ImDrawCmd.
85553359 Shallow alignment of ImGuiKey stuff + moving some in internals. Internals: add offset to ImBitArray<>, simpify ActiveIdUsingKeyInputMask.
08f3aa89 Popups: Fix b17b2fb (#4936)
4caf1e9b Backends: GLFW: fix ImGui_ImplGlfw_TranslateUntranslatedKey() for grave accents. (#456, #2625) + fix preceeding commit.
b17b2fb7 Popups: Fixed an issue when reopening a same popup multiple times would offset them by 1 pixel on the right. (#4936)
cda3db14 Backends: SDL: Fixed key mapping for ImGuiKey_Menu (#4921) + misc typos (#4928)
dd6a44ab Fix compiler warning for Intel compiler (#4934)
4fb0c1f9 Correct some typos in FAQ.md (#4924)
cff03424 Internals: moved lines into a Inputs section.
c2db4c24 Demo: draw a section of keyboard in "Inputs > Keyboard, Gamepad & Navigation state" to visualize keys.
69b69737 Comments, tweaks.
26e59c87 Nav: Fixed gamepad navigation in wrapping popups not wrapping all the way. (#4365)
62d6be37 IO: Removed ImGuiInputSource from public api for now, unnecessary. (#4858, #787)
5ea47d95 Backends: OSX: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787)
39c3412f Backends: SDL: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787)
3d854337 Backends: GLFW: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787)
9f8c599c Backends: Win32: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787)
f33bb998 IO: added AddKeyAnalogEvent() and support for ImGuiKey_GamepadXXXX. (#4858, #787)
6e63fcac Backends: Vulkan: Amends, fix miscast on 32-bit systems with the right ImTextureID=ImU64. (#914)
ceb26bac Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, amends. (#914)
29f10431 Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, add ImGui_ImplVulkan_AddTexture(). (#914)
19471da3 Popups: Fix a crash when a new window is created after a modal on the same frame. (#4920)
7ad42ff4 IO: renamed io.ConfigInputEventQueue to io.ConfigInputTrickleEventQueue. (#4858)
26d04c94 Tables: Fixed positioning of Sort icon on right-most column with some settings (not resizable + no borders). (#4918).
97b1ffcb IO: Reorder enums, compact a little in header. Removed const from internal GetKeyData().
91ae56af Removed support for legacy arithmetic operators (+*/) when inputing text into a slider/drag. (#4917, #3184)
673f5e58 IO: moved fields to put more focus on the new functions + update misc docs/references + update main.mm in Apple+Metal example (#4858)
90a69616 IO: apply same flooring as UpdateMouseInputs() in dupe event processing. (#4858) + provision for test engine.
7374b96f IO: Added input queue. (#4858, #2787, #1992, #3383, #2525, #1320)
b8e56dce IO: Added AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() api + updated all Backends. (#4858) (input queue code will be next commit)
b6582a47 Backends: OSX: Fix Game Controller nav mapping to use shoulder for both focusing and tweak speed. (#4759)
92c4ff1c Rename ImGuiKey_LeftControl to ImGuiKey_LeftCtrl, ImGuiKey_RightControl to ImGuiKey_RightCtrl + made key order match mods order. (#4858)
07557674 Backends: move io.AddKeyModsEvent() next to io.AddKeyEvent() submission, rely on mods from platform/source. (#4858) + fix #2622 again broken by 746c9f7
eb823655 Removed support for pre-C++11 compilers. We'll stop supporting VS2010. (#4537)
f84c93d8 Update BACKENDS.md (#4909)
45c4365e Backends: GLFW: glfwGetKeyName is not implemented in emscripten (#4907, #4858)
6188e941 Examples: Vulkan: fill Subpass and MSAASamples to increase discoverability (#4886) + IO docs update (#4858)
553b0488 Backends: SDL: Fix for Emscriptem. Amend 98ce013.
95516356 IO: fix SetKeyEventNativeData() not handling ImGuiKey_None the same way as AddKeyEvent(). (#4905, #4858)
200a8f1e Backends: GLFW: Update mouse inputs using glfwSetCursorPosCallback() (breaking) + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons.
98ce0132 Backends: SDL: Update mouse inputs using SDL_MOUSEMOTION/SDL_WINDOWEVENT_LEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons.
bf4de2a4 Backends: Win32: Update mouse inputs using WM_MOUSEMOVE/WM_MOUSELEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before Key Modifiers.
7f8a89c2 Backends: Win32, SDL: maintain MouseButtonsDown instead of using IsAnyMouseDown(). Internals: added GetInputSourceName().
457d4b7b Backends: OSX: Adedd basic IME support for macOS. (#3108, #2598)
290c5173 Fixed warning in ImFloorSigned(). (#4889)
0818a423 Backend: WebGPU: Fixed incorrect size parameters in WGPU backend (#4891)
96186a93 Typo correction in imgui_demo.cpp (#4892)
956e0300 Backends: OSX: Build fIx. Made GetKeyName() input tolerant. Internals: added GetNavInputName().
e8172fdf Rename io.AddKeyModEvent() -> io.AddKeyModsEvent() and updated backends accordingly. (#2625, #4858)
b2e2cc44 Backends: OSX: Fixed typo.
790132a6 Added io.AddKeyModEvent() and updated backends accordingly. (#2625, #4858)
1797135d Backends: Android: Update to use io.AddEventKey() will full key map (#2625, #4858)
ee436aa8 Backends: OSX: Update to use io.AddEventKey() will full key map (#2625, #1873, #4858)
da1864d7 Backends: GLUT: Update to use io.AddEventKey() will full key map (#2625, #4858)
1bfe4a75 Backends: Allegro5: Update to use io.AddEventKey() will full key map (#2625, #4858)
fe646ea5 Backends: SDL2: Update to use io.AddEventKey() will full key map (#2625, #4858) + created localized key (using keycode instead of scancode) (#456)
ecd212c0 Backends: GLFW: Update to use io.AddEventKey() will full key map (#2625, #4858)
746c9f76 Backends: Win32: Update to use io.AddEventKey() will full key map (#2625, #4858)
bf08c13e Inputs: Extra Keys / AddKeyEvent(): bidirectional mapping, basic CI, simplify backends, asserts on misuses, tested backward compat. (#2625, #4858, #2787)
3b669293 Inputs: Extra Keys / AddKeyEvent(): Added ImGuiKey values, io.AddKeyEvent(), GetKeyName(), IMGUI_DISABLE_OBSOLETE_KEYIO. Obsoleted GetKeyIndex(), io.KeyMap[], io.KeysDown[]. (#2625, #4858, #2787)
afffcd58 Inputs: rename ImGuiKey_KeyPadEnter > ImGuiKey_KeypadEnter (#2625)
100ede57 Backends: GLFW: Fix CTRL+A, CTRL+Y, CTRL+Z to match keyboard layout. Converting GLFW untranslated keycodes back to translated keycodes. (#456, #2625)
4d023bd7 Fix for using IMGUI_DISABLE_OBSOLETE_FUNCTIONS
de36ff04 Platform IME: add ImGuiPlatformImeData::InputLineHeight (unused by win32). (#3113)
29a8ee08 Platform IME: add ImGuiPlatformImeData::WantVisible, hide IME when not used. (#2589)
1cbfe935 Platform IME: [windows] call ImmSetCandidateWindow() to position candidate window.
2706c9d6 Platform IME: reworked internals to simplify adding new features.
3a90dc38 Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API.
04bc0b0b Fix IdxBuffer related comments. (#4845, #4863)
28eabcb0 Internals: refactor: mouse input functions into their own section.
206b9ead IO: removed unused MouseDragMaxDistanceAbs(). Using a shortcut variable in UpdateMouseInputs().
c5a3cae8 Reordered some IO fields. Misc comments. Removed beta marker from tables comments.
efa50f72 Backends: Metal: Ignore ImDrawCmd where ElemCount == 0. (#4857)
b0a6cd63 Fixed a situation where CTRL+Tab or Modal can occasionally lead to the creation of ImDrawCmd with zero triangles, (#4857)
2402958a Commented out redirecting functions/enums names that were marked obsolete in 1.69, 1.70, 1.71, 1.72
92d7869f Happy new year!
83d22f4e Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::AddCallback().(#4843, #4844)
41e39ea6 Backends: Metal: Add Metal C++ bindings support. (#4824, #4746)
dbeea722 Backends: Silence overzealous warnings. (#4834) Add comments about SetDragDropPayload() return value. (#4835)
89a28209 Version 1.87 WIP + Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init, added in 1.86 (#4468, #4830)
980deb4c Add missing include guard to avoid declaring ImFontAtlasGetBuilderForStbTruetype() function.
512c54bb Version 1.86
612b787b Menus: fixed top-level menu from not consistently using style.PopupRounding. (#4788)
4bad852a Backends: SDL_Renderer: Handle change to SDL_RenderGeometryRaw() function signature in SDL 2.0.19 (#4819)
0636f9ad InputText: fixed Shift+Delete from not cutting into clipboard. (#4818, #1541)
d9bc1e44 Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. (#368, #375)
0cdc4a95 Backends: Win32: Store left/right variants of Ctrl/Shift/Alt mods in KeysDown[] array. (#2625)
4a43dcb9 Internals: reduced side-effects of setting window->HiddenFramesForRenderOnly > 0
1c4066cd Internals: UpdateWindowInFocusOrderList: amend a528398 to fix docking. (#3496, #4797)
389982eb Backends: OpenGL3: Using buffer orphaning + glBufferSubData(), seems to fix leaks with multi-viewports with some Intel HD drivers.. (#4468, #4504, #2981, #3381)
48f26333 Menus: fixed closing a menu inside a popup/modal. Fixed menu inside a popup/modal not inhibiting hovering of items in the popup/modal. (#3496, #4797)
a528398c Internals: support for varying _ChildWindow flag for menu windows. (#3496, #4797)
11638fdf Menus: reuse more menu windows when stacked over popups.
0e8c199e CI: Use regex to fix vcxproj platform and toolset versions. (#3249) Remove Discord integration.
d7350668 Fix OSX warnings + Examples/Apple+GL2 calls super reshape. (#4759, #1873)
1b6b8602 Backends: OSX: Fix keyboard support. Handle scroll cancel. Don't set mouse cursor shape unconditionally. (#4759, #4253, #1873)
f71ee520 Fix infinite loop in ImFontGlyphRangesBuilder::AddRanges if the user passes upper range = UINT16_MAX without IMGUI_USE_WCHAR32. (#4802)
b720f1f0 Backends: OSX: Add Game Controller support. (#4759)
8a9fe268 Menus: fixed closing a menu by clicking on its menu-bar item when inside a popup. (#3496, #4797)
c8017992 Added an assertion for the common user mistake of using "" as an identifier at the root level of a window. (#1414, #2562, #2807, #4008, #4158, #4375, #4548, #4657, #4796)
a8e1dde3 Fix static analyser, update readme.
e03383d0 Fixes for tooltip over modals leading to incorrect modal dimming. (#4729)
bdd2a943 InputTextMultiline: fixed vertical tracking with large values of FramePadding.y. (#3781, #4794)
072caa4a InputText: fixed incorrect padding when FrameBorder > 0. (#4794, #3781)
270d4d08 Nav, Docking: Fix crash on dimming docked window and DockSpaceOverViewport() with PassthruCentralNode.
a19815dc Backends: Allegro5: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790)
c80e8b96 Backends: OpenGL2, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790)
b38af0f5 Popups: Fix popups being closed by newly appearing windows. (#4317)
657073a6 Nav, Docking: fix dimming crash with accessing zero-cmd ImDrawList (amend 1dc3af3, 23ef6c1)
20e040c8 Clipper, Tables: remove table specific code path should now be ok (added assert).
926addbf Clipper: fixed invalid state when number of frozen table row is smaller than ItemCount.
027a7ba3 Clipper: use line size instead of cursor comparaison when range are large. (#3609, #3962 + ocornut/imgui_club#20)
a76bc52d Window, Clipper: store initial precision loss and apply in clipper. (#3609, #3962 + ocornut/imgui_club#20)
6e141a9c Internals: made ScrollbarEx() use ImS64 to facilitate use with larger ranges (not fully tested) + clipper tweaks (#3609, #3962 + ocornut/imgui_club#20)
eea83613 InputText: fix buffer modifications in callbacks while using resize callback (#4784)
aa41f165 Separator: fixed cover all columns while called inside a table. (#4787, #205)
23ef6c14 Reworked modal/ctrl+tab dimming system to be entirely processed at end of the frame (backported 1dc3af3 from docking)
da3a36ee Backport from docking branch: minor stuff.
78c6435d Inputs: (breaking wip) removed IsMouseTripleClicked() added recently (during 1.86 WIP), replaced with GetMouseClickedCount(). (#3229)
5c388c39 Backends: SDL_Renderer: Added support for large meshes (64k+ vertices) with 16-bit indices, enable 'ImGuiBackendFlags_RendererHasVtxOffset' in this backend. (#3926)
5b1a70aa Fixed RenderRectFilledWithHole() (used by docking) + added dummy EndFrameDrawDimmedBackgrounds() stub in master.
440824d4 Backends: Fixed early out on empty clip rect. In particular, DX12 backend would warn about it (others not so much). (#4775, #4464)
f087a5b8 Metrics: Added a node showing windows in submission order and showing the Begin() stack.
c5db2765 InputText, Nav: fixed tabbing through InputTextMultiline(). (#4761, #3092)
9d704d99 Internals: wrapped ImQsort() in an inline function + added a define guard.
66f0fb98 Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761)
5ccb6679 Backends: WebGPU: Passing explicit buffer sizes  as validation layers appears to not do what the in-flux specs says. (#4766
cb5c73f6 Fix: IM_DEBUG_BREAK macro on ARM GCC (#4767)
65f4be1a InputText: Internals: moved "apply_new_text" application code to reduce noise in a future commit (will be for #4714) + removed unused fields.
5ac25e7c InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762)
4d9a3b19 Internals: Implement a continuable IM_DEBUG_BREAK on GCC for common archs. (#2673)
764f9e60 Fixed crash on right-click without modal, introduced by previous commit a3667f46,  (#4729)
a3667f46 Fixed tooltip in own viewport over modal from being incorrectly dimmed. (#4729)
3fde445b Misc: Added missing ImGuiMouseCursor_NotAllowed cursor for software rendering (when io.MouseDrawCursor is enabled). (#4713)
d80a9123 Internals: move chunks of IsItemHovered() so upcoming commit can be less noisy. This commit should be a no-op (check by comparing without white-space changes)
2c29e391 Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceAllowNullID doesn't lose tooltip when scrolling. (#143)
f8a806ad Tooltips, Internal: (Breaking) swapped parameter order to accomodate for future tooltip api rework.
7cd3cfa5 Demo: Add IMGUI_DEMO_MARKER (currently unused, but usage by altering GImGuiDemoMarkerCallback) (#3689)
cad790d4 Nav: fixed backwrap tabbing wrap on sibling child windows with _NavFlattened flag. (#4449)
e790fc0e Nav: prevent child from clipping items when using _NavFlattened and parent has a pending nav request. (#787)
a9ea1ae8 Nav: fixing assert using Tab in a window without any tabbable element (#4449)
eb02dcf8 Nav: enable move/resize window with keyboard in Ctrl+Tabbing windowing menu even without _NavEnableKeyboard. (#4023, #787).
8ce23b3c Nav: Ctrl+tabbing to cycle through windows is now enabled regardless of _NavEnableKeyboard. (#4023, #767)
bce1ba40 Clipper: add ForceDisplayRangeByIndices (#3841, #3578)
ebac3757 Docs: added info about Freetype, editing sponsors.
1a7526dc Nav, Tabbing: refactor tabbing system to support clipped items, scrolling, using nav queries. (#4449)
f01a6d3e InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682)
32779c5b Clipper: hotfix (amend 93cccd2, was broken) (#3841, #1725)
64daeddf Removed CalcListClipping() function. (#3841)
6a7e2c74 Clipper: remove ForceDisplayRangeByIndices/ForceDisplayRangeByPositions functions until we find a need for them, since #3841 is now solved automatically.
93cccd27 Clipper: bunch of rework. (#3841, #1725)
cd1b5f78 Clipper: enhanced ImGuiListClipper (#3841)
b409df34 Clipper: Fixed content height declaration slightly mismatching the one of when not using a clipper.
14466a6d Nav: Page/Home/End doesn't immediately restore highlight (before results comes) + pressing Esc to exit a child window re-enable the Nav highlight if it was disabled by mouse.
978598b1 Nav: pressing PageUp/PageDown/Home/End when in Menu layer automatically moves back to Main layer. + fixed resizing window from borders setting navigation to Menu layer.
d1eb7b57 ScrollToItem: amend fully visible tests to take account of spacing used (fix nav in one axis scrolling back and forth between axises when space is tight by just < ItemSpacing*2) (#3692, #2812, #4242, #2900)
eb654f1b Typo
b1a68d89 Fix misplaced backtick in FAQ.md (#4669)
a67f7dce Nav: relative rectangle positions are now stored relative to CursorStartPos to be independent of scrolling. Will facilitate rework of clipper (#3841)
8d361c47 Nav: rework NavEnableSetMousePos application so scrolling is applied more consistently in NavCalcPreferredRefPos() + moved at end of NavUpdate() after the last SetScroll have been done.
8361ed1f Nav: wrap abs<>rel rectangle conversions before we attempt to switch the reference point from window->Pos to window->DC.CursorStartPos. This commit should have no effect.
19c72cd5 Nav: fixed absolute mouse position (with NavEnableSetMousePos config flag) when using Home/End leads to scrolling.
c363b6df Modals: fixed issue hovering popups inside a child inside a modal. Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676)(#4676, #4527)
0f2898ea Demo: Tree selection demo use !IsItemToggledOpen() (#1896) + update FAQ (#4366)
99552420 InputText: triple-click avoid scroll + include end of line character. (#2244)
126a6f89 InputText: made double-click select word, triple-line select line. Word delimitation logic differs slightly from the one used by CTRL+arrows. (#2244)
9c78fc92 Inputs: Mouse: Amend c8e3a01 for tracking multiple clicks, renaming. (#3229)
2318c764 Inputs: Mouse: Add support for tracking multiple clicks more than just double (#3229)
39b99072 ImVector: fix Clang warning (implicit conversion changes signedness: 'const ptrdiff_t' (aka 'const long long') to  'unsigned long long')
ad3f54ff Examples: Emscripten comments (#4650, #4662), standardize readme
19c3773c Backends: Vulkan: Call vkCmdSetScissor() with a full-viewport at end of render. (#4644)
bbd5119a Backends: Vulkan: comments about user using VK_DYNAMIC_STATE_VIEWPORT / VK_DYNAMIC_STATE_SCISSOR and not calling vkCmdSetViewport() / vkCmdSetScissor(). (#4644)
e3bd9434 1.86 WIP + internals: tweaks table temp data code.
13cdf2ff CI: Add MinGW DLL builds,
be03b8ff Misc: Fix build with MinGW when using IMGUI_API.

git-subtree-dir: lib/imgui
git-subtree-split: a8df192df022ed6ac447e7b7ada718c4c4824b41
  • Loading branch information
mauer committed Dec 14, 2022
1 parent 308727d commit 3f2d9c3
Show file tree
Hide file tree
Showing 122 changed files with 11,560 additions and 6,586 deletions.
8 changes: 6 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
# See http://editorconfig.org to read about the EditorConfig format.
# - In theory automatically supported by VS2017+ and most common IDE or text editors.
# - In practice VS2019 stills gets trailing whitespaces wrong :(
# - Suggest install to trim whitespaces: https://marketplace.visualstudio.com/items?itemName=MadsKristensen.TrailingWhitespaceVisualizer
# - In practice VS2019-VS2022 stills don't trim trailing whitespaces correctly :(
# - Suggest installing this to trim whitespaces:
# GitHub https://github.com/madskristensen/TrailingWhitespace
# VS2019 https://marketplace.visualstudio.com/items?itemName=MadsKristensen.TrailingWhitespaceVisualizer
# VS2022 https://marketplace.visualstudio.com/items?itemName=MadsKristensen.TrailingWhitespace64
# (in spite of its name doesn't only visualize but also trims)
# - Alternative for older VS2010 to VS2015: https://marketplace.visualstudio.com/items?itemName=EditorConfigTeam.EditorConfig

# top-most EditorConfig file
Expand Down
2 changes: 1 addition & 1 deletion .github/issue_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

2. PLEASE CAREFULLY READ: [FAQ](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md)

3. PLEASE CAREFULLY READ: [Issue Submitting Guidelines](https://github.com/ocornut/imgui/issues/2261)
3. PLEASE CAREFULLY READ: [Contributing Guidelines](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md)

4. PLEASE MAKE SURE that you have: read the FAQ; explored the contents of `ShowDemoWindow()` including the Examples menu; searched among Issues; used your IDE to search for keywords in all sources and text files; and read the links above.

Expand Down
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
(Click "Preview" to turn any http URL into a clickable link)

1. PLEASE CAREFULLY READ: [Issue Submitting Guidelines](https://github.com/ocornut/imgui/issues/2261)
1. PLEASE CAREFULLY READ: [Contributing Guidelines](https://github.com/ocornut/imgui/blob/master/docs/CONTRIBUTING.md)

2. Clear this template before submitting your PR.

97 changes: 44 additions & 53 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,20 +37,30 @@ jobs:
- name: Fix Projects
shell: powershell
run: |
# WARNING: This will need updating if toolset/sdk change in project files!
# CI workers do not supporter older Visual Studio versions. Fix projects to target newer available version.
gci -recurse -filter "*.vcxproj" | ForEach-Object {
# Fix SDK and toolset for most samples.
(Get-Content $_.FullName) -Replace "<PlatformToolset>v110</PlatformToolset>","<PlatformToolset>v142</PlatformToolset>" | Set-Content -Path $_.FullName
(Get-Content $_.FullName) -Replace "<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>","<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>" | Set-Content -Path $_.FullName
# Fix SDK and toolset for samples that require newer SDK/toolset. At the moment it is only dx12.
(Get-Content $_.FullName) -Replace "<PlatformToolset>v140</PlatformToolset>","<PlatformToolset>v142</PlatformToolset>" | Set-Content -Path $_.FullName
(Get-Content $_.FullName) -Replace "<WindowsTargetPlatformVersion>10.0.14393.0</WindowsTargetPlatformVersion>","<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>" | Set-Content -Path $_.FullName
(Get-Content $_.FullName) -Replace "<PlatformToolset>v\d{3}</PlatformToolset>","<PlatformToolset>v142</PlatformToolset>" | Set-Content -Path $_.FullName
(Get-Content $_.FullName) -Replace "<WindowsTargetPlatformVersion>[\d\.]+</WindowsTargetPlatformVersion>","<WindowsTargetPlatformVersion>10.0.18362.0</WindowsTargetPlatformVersion>" | Set-Content -Path $_.FullName
}
# Not using matrix here because it would inflate job count too much. Check out and setup is done for every job and that makes build times way too long.
- name: Build example_null (extra warnings, mingw 64-bit)
run: mingw32-make -C examples/example_null WITH_EXTRA_WARNINGS=1

- name: Build example_null (mingw 64-bit, as DLL)
shell: bash
run: |
echo '#ifdef _EXPORT' > example_single_file.cpp
echo '# define IMGUI_API __declspec(dllexport)' >> example_single_file.cpp
echo '#else' >> example_single_file.cpp
echo '# define IMGUI_API __declspec(dllimport)' >> example_single_file.cpp
echo '#endif' >> example_single_file.cpp
echo '#define IMGUI_IMPLEMENTATION' >> example_single_file.cpp
echo '#include "misc/single_file/imgui_single_file.h"' >> example_single_file.cpp
g++ -I. -Wall -Wformat -D_EXPORT -shared -o libimgui.dll -Wl,--out-implib,libimgui.a example_single_file.cpp -limm32
g++ -I. -Wall -Wformat -o example_null.exe examples/example_null/main.cpp -L. -limgui
rm -f example_null.exe libimgui.* example_single_file.*
- name: Build example_null (extra warnings, msvc 64-bit)
shell: cmd
run: |
Expand Down Expand Up @@ -236,7 +246,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -Wextra -Werror -Wno-zero-as-null-pointer-constant -Wno-double-promotion -Wno-variadic-macros -Wno-empty-body -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -Wextra -Werror -Wno-zero-as-null-pointer-constant -Wno-double-promotion -Wno-variadic-macros -Wno-empty-body -o example_single_file example_single_file.cpp
- name: Build example_null (freetype)
run: |
Expand All @@ -252,7 +262,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (with ImWchar32)
run: |
Expand All @@ -264,7 +274,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (with large ImDrawIdx + pointer ImTextureID)
run: |
Expand All @@ -277,7 +287,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (with IMGUI_DISABLE_OBSOLETE_FUNCTIONS)
run: |
Expand All @@ -289,20 +299,32 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (with IMGUI_DISABLE_DEMO_WINDOWS and IMGUI_DISABLE_METRICS_WINDOW)
- name: Build example_null (with IMGUI_DISABLE_OBSOLETE_KEYIO)
run: |
cat > example_single_file.cpp <<'EOF'
#define IMGUI_DISABLE_OBSOLETE_KEYIO
#define IMGUI_IMPLEMENTATION
#include "misc/single_file/imgui_single_file.h"
#include "examples/example_null/main.cpp"
EOF
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (with IMGUI_DISABLE_DEMO_WINDOWS and IMGUI_DISABLE_DEBUG_TOOLS)
run: |
cat > example_single_file.cpp <<'EOF'
#define IMGUI_DISABLE_DEMO_WINDOWS
#define IMGUI_DISABLE_METRICS_WINDOW
#define IMGUI_DISABLE_DEBUG_TOOLS
#define IMGUI_IMPLEMENTATION
#include "misc/single_file/imgui_single_file.h"
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (with IMGUI_DISABLE_FILE_FUNCTIONS)
run: |
Expand All @@ -314,7 +336,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (with IMGUI_USE_BGRA_PACKED_COLOR)
run: |
Expand All @@ -326,7 +348,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (with IM_VEC2_CLASS_EXTRA and IM_VEC4_CLASS_EXTRA)
run: |
Expand All @@ -346,7 +368,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
g++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
g++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (without c++ runtime, Clang)
run: |
Expand All @@ -358,7 +380,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
clang++ -I. -Wall -Wformat -nodefaultlibs -fno-rtti -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp
clang++ -I. -std=c++11 -Wall -Wformat -nodefaultlibs -fno-rtti -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp
- name: Build example_glfw_opengl2
run: make -C examples/example_glfw_opengl2
Expand All @@ -375,7 +397,7 @@ jobs:
run: make -C examples/example_sdl_opengl3

- name: Build with IMGUI_IMPL_VULKAN_NO_PROTOTYPES
run: g++ -c -I. -DIMGUI_IMPL_VULKAN_NO_PROTOTYPES=1 backends/imgui_impl_vulkan.cpp
run: g++ -c -I. -std=c++11 -DIMGUI_IMPL_VULKAN_NO_PROTOTYPES=1 backends/imgui_impl_vulkan.cpp

MacOS:
runs-on: macos-latest
Expand All @@ -398,7 +420,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
clang++ -I. -Wall -Wformat -o example_single_file example_single_file.cpp
clang++ -I. -std=c++11 -Wall -Wformat -o example_single_file example_single_file.cpp
- name: Build example_null (without c++ runtime)
run: |
Expand All @@ -409,7 +431,7 @@ jobs:
#include "examples/example_null/main.cpp"
EOF
clang++ -I. -Wall -Wformat -nodefaultlibs -fno-rtti -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp
clang++ -I. -std=c++11 -Wall -Wformat -nodefaultlibs -fno-rtti -fno-exceptions -fno-threadsafe-statics -lc -lm -o example_single_file example_single_file.cpp
- name: Build example_glfw_opengl2
run: make -C examples/example_glfw_opengl2
Expand Down Expand Up @@ -483,34 +505,3 @@ jobs:
run: |
cd examples/example_android_opengl3/android
gradle assembleDebug
Discord-CI:
runs-on: ubuntu-18.04
if: always()
needs: [Windows, Linux, MacOS, iOS, Emscripten, Android]
steps:
- uses: dearimgui/github_discord_notifier@latest
with:
discord-webhook: ${{ secrets.DISCORD_CI_WEBHOOK }}
github-token: ${{ github.token }}
action-task: discord-jobs
discord-filter: "'{{ github.branch }}'.match(/master|docking/g) != null && '{{ run.conclusion }}' != '{{ last_run.conclusion }}'"
discord-username: GitHub Actions
discord-job-new-failure-message: ''
discord-job-fixed-failure-message: ''
discord-job-new-failure-embed: |
{
"title": "`{{ job.name }}` job is failing on `{{ github.branch }}`!",
"description": "Commit [{{ github.context.payload.head_commit.title }}]({{ github.context.payload.head_commit.url }}) pushed to [{{ github.branch }}]({{ github.branch_url }}) broke [{{ job.name }}]({{ job.url }}) build job.\nFailing steps: {{ failing_steps }}",
"url": "{{ job.url }}",
"color": "0xFF0000",
"timestamp": "{{ run.updated_at }}"
}
discord-job-fixed-failure-embed: |
{
"title": "`{{ github.branch }}` branch is no longer failing!",
"description": "Build failures were fixed on [{{ github.branch }}]({{ github.branch_url }}) branch.",
"color": "0x00FF00",
"url": "{{ github.context.payload.head_commit.url }}",
"timestamp": "{{ run.completed_at }}"
}
33 changes: 1 addition & 32 deletions .github/workflows/static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:

jobs:
PVS-Studio:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
with:
Expand Down Expand Up @@ -44,34 +44,3 @@ jobs:
pvs-studio-analyzer trace -- make WITH_EXTRA_WARNINGS=1
pvs-studio-analyzer analyze -e ../../imstb_rectpack.h -e ../../imstb_textedit.h -e ../../imstb_truetype.h -l ../../pvs-studio.lic -o pvs-studio.log
plog-converter -a 'GA:1,2;OP:1' -d V1071 -t errorfile -w pvs-studio.log
Discord-CI:
runs-on: ubuntu-18.04
needs: [PVS-Studio]
if: always()
steps:
- uses: dearimgui/github_discord_notifier@latest
with:
discord-webhook: ${{ secrets.DISCORD_CI_WEBHOOK }}
github-token: ${{ github.token }}
action-task: discord-jobs
discord-filter: "'{{ github.branch }}'.match(/master|docking/g) != null && '{{ run.conclusion }}' != '{{ last_run.conclusion }}'"
discord-username: GitHub Actions
discord-job-new-failure-message: ''
discord-job-fixed-failure-message: ''
discord-job-new-failure-embed: |
{
"title": "`{{ job.name }}` job is failing on `{{ github.branch }}`!",
"description": "Commit [{{ github.context.payload.head_commit.title }}]({{ github.context.payload.head_commit.url }}) pushed to [{{ github.branch }}]({{ github.branch_url }}) broke static analysis [{{ job.name }}]({{ job.url }}) job.\nFailing steps: {{ failing_steps }}",
"url": "{{ job.url }}",
"color": "0xFF0000",
"timestamp": "{{ run.updated_at }}"
}
discord-job-fixed-failure-embed: |
{
"title": "`{{ github.branch }}` branch is no longer failing!",
"description": "Static analysis failures were fixed on [{{ github.branch }}]({{ github.branch_url }}) branch.",
"color": "0x00FF00",
"url": "{{ github.context.payload.head_commit.url }}",
"timestamp": "{{ run.completed_at }}"
}
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,12 @@ examples/example_emscripten_wgpu/web/*
cmake-build-*

## Unix executables from our example Makefiles
examples/example_glfw_metal/example_glfw_metal
examples/example_glfw_opengl2/example_glfw_opengl2
examples/example_glfw_opengl3/example_glfw_opengl3
examples/example_glut_opengl2/example_glut_opengl2
examples/example_null/example_null
examples/example_sdl_metal/example_sdl_metal
examples/example_sdl_opengl2/example_sdl_opengl2
examples/example_sdl_opengl3/example_sdl_opengl3
examples/example_sdl_sdlrenderer/example_sdl_sdlrenderer
2 changes: 1 addition & 1 deletion LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2014-2021 Omar Cornut
Copyright (c) 2014-2022 Omar Cornut

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
Loading

0 comments on commit 3f2d9c3

Please sign in to comment.