1.89.4
1.89.4
v1.89.4: Release cadence continues!
Reading the changelog is a good way to keep up to date with the things Dear ImGui has to offer, and maybe will give you ideas of some features that you've been ignoring until now!
📣 Click version number above to display full release note contents, sometimes randomly clipped by GitHub..
Dear ImGui is funded by your contributions and needs them right now.
If your company uses Dear ImGui, consider reaching out.
TL;DR
- Nav: Tab key goes through every items (when keyboard navigation is active).
- Nav: Enter key works to activate most items (when keyboard navigation is active).
- Added return value to BeginTooltip().
- Examples: Activated keyboard and gamepad navigation by default in all examples.
- Various other fixes related to: Nav, Tables, Drag and Drop, InputText.
- Various improvements to GLFW backends.
- Added a Debug Tools to facilitate testing user-code testing Begin/BeginChild return value.
Changes
This is a followup to v1.89, v1.89.1, v1.89.2 and v1.89.3. We are trying to make more frequent releases. Because it sets a beat and may encourage teams to update more frequently.
Breaking Changes:
- Renamed
pushAllowKeyboardFocus()
/popAllowKeyboardFocus()
topushTabStop()
/popTabStop()
. - Tooltips: Added
Boolean
return value tobeginTooltip()
for API consistency. Please only submit contents and callendTooltip()
ifbeginTooltip()
returnstrue
. In reality the function will currently always returntrue
, but further changes down the line may change this, best to clarify API sooner. Updated demo code accordingly.
Other Changes:
- Nav: Tabbing now cycles through all items when
ConfigFlag.NavEnableKeyboard
is set. (ocornut/imgui#3092, ocornut/imgui#5759, ocornut/imgui#787)
While this was generally desired and requested by many, note that its addition means that some types of UI may become more fastidious to use TAB key with, if the navigation cursor cycles through too many items. You can mark items items as not tab-spottable:- Public API:
pushTabStop(false)
/popTabStop()
. - Internal:
pushItemFlag(temFlag.NoTabStop, true)
. - Internal: Directly pass
ItemFlag.NoTabStop
toitemAdd()
for custom widgets.
- Public API:
- Nav: Tabbing/Shift-Tabbing can more reliably be used to step out of an item that is not tab-stoppable. (ocornut/imgui#3092, ocornut/imgui#5759, ocornut/imgui#787)
- Nav: Made Enter key submit the same type of Activation event as Space key, allowing to press buttons with Enter. (ocornut/imgui#5606)
- (Enter emulates a "prefer text input" activation vs. Space emulates a "prefer tweak" activation which is to closer to gamepad controls).
- Nav: Fixed an issue with Gamepad navigation when the movement lead to a scroll and frame time > repeat rate. Triggering a new move request on the same frame as a move result lead to an incorrect calculation and loss of navigation id. (ocornut/imgui#6171)
- Nav: Fixed
setItemDefaultFocus()
from not scrolling when item is partially visible. (ocornut/imgui#2814, ocornut/imgui#2812) [@DomGries] - Tables: Fixed an issue where user's Y cursor movement within a hidden column would have side-effects.
- IO: Lifted constraint to call
io.addEventXXX
functions from current context. (ocornut/imgui#4921, ocornut/imgui#5856, ocornut/imgui#6199) - InputText: Fixed not being able to use CTRL+Tab while an InputText() using Tab for completion or text data is active (regression from 1.89).
- Drag and Drop: Fixed handling of overlapping targets when smaller one is submitted before and can accept the same data type. (ocornut/imgui#6183).
- Drag and Drop: Clear drag and drop state as soon as delivery is accepted in order to avoid interferences. (ocornut/imgui#5817, ocornut/imgui#6183)
- Debug Tools: Added
io.configDebugBeginReturnValueOnce
/io.configDebugBeginReturnValueLoop
options to simulate Begin/BeginChild returning false to facilitate debugging user behavior. - Demo: Updated to test return value of
beginTooltip()
. - Backends: OpenGL3: Fixed restoration of a potentially deleted OpenGL program. If an active program was pending deletion, attempting to restore it would error. (ocornut/imgui#6220, ocornut/imgui#6224)
- Examples: Updated all examples application to enable
ConfigFlag.NavEnableKeyboard
andConfigFlag.NavEnableGamepad
by default. (ocornut/imgui#787) - Internals: Misc tweaks to facilitate applying an explicit-context patch. (ocornut/imgui#5856)