Skip to content

1.89.4

Compare
Choose a tag to compare
@elect86 elect86 released this 21 Jun 13:49
· 155 commits to master since this release

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() to pushTabStop()/popTabStop().
  • Tooltips: Added Boolean return value to beginTooltip() for API consistency. Please only submit contents and call endTooltip() if beginTooltip() returns true. In reality the function will currently always return true, 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 to itemAdd() for custom widgets.
  • 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 and ConfigFlag.NavEnableGamepad by default. (ocornut/imgui#787)
  • Internals: Misc tweaks to facilitate applying an explicit-context patch. (ocornut/imgui#5856)