Skip to content

v1.91.3

Compare
Choose a tag to compare
@ocornut ocornut released this 04 Oct 13:48
· 90 commits to master since this release

1.91.3: opt-in error recovery features + misc drags/tooltips/scrollbar/backends work.

❤️ A month ago was the 10th anniversary of v1.00! Read: 10 years of Dear ImGui ! 🎉
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!
📣 If you are browsing multiple releases: click version number above to display full release note contents, otherwise it is badly clipped by GitHub!


Links: Homepage - Release notes - FAQ - Issues, Q&A. Also see our Wiki with sections such as..

Dear ImGui is funded by your contributions and absolutely needs them to sustain and grow. We can invoice and accommodate to many situations. If your company uses Dear ImGui, please reach out. See Funding page. Did you know? If you need an excuse to pay, you may buy licenses for Test Engine and buy hours of support (and cough not use them all) and that will contribute to fund Dear ImGui.

In recent year, Dear ImGui has been financially supported by many companies. Thank you SCS Software for starting to sponsor Dear ImGui!

Special thanks to @GamingMinds-DanielC, @PathogenDavid & more for for their help with patches and answers!


error handling 4

Changes (since v1.91.2)

Breaking Changes:

  • Drags: treat v_min==v_max as a valid clamping range when != 0.0f. Zero is still a special value due to legacy reasons, unless using ImGuiSliderFlags_ClampZeroRange. (#7968, #3361, #76)
  • Drags: extended behavior of ImGuiSliderFlags_AlwaysClamp to include ImGuiSliderFlags_ClampZeroRange. It considers v_min==v_max==0.0f as a valid clamping range (aka edits not allowed). Although unlikely, it you wish to only clamp on text input but want v_min==v_max==0.0f to mean unclamped drags, you can use _ClampOnInput instead of _AlwaysClamp. (#7968, #3361, #76)

Other changes:

  • Error Handling: Enabled/improved error recovery systems. (#1651, #5654)
    • Read https://github.com/ocornut/imgui/wiki/Error-Handling for a bit more details.
    • Error recovery is provided as a way to facilitate:
      • Recovery after a programming error. Native code or scripting language (the later tends to facilitate iterating on code while running).
      • Recovery after running an exception handler or any error processing which may skip code after an error has been detected.
    • Error recovery is not perfect nor guaranteed! It is a feature to ease development.
      You not are not supposed to rely on it in the course of a normal application run.
    • Functions that support error recovery are using IM_ASSERT_USER_ERROR() instead of IM_ASSERT().
    • By design, we do not allow error recovery to be 100% silent. One of the options needs to be enabled!
    • Possible usage: facilitate recovery from errors triggered from a scripting language or after specific exceptions handlers. Surface errors to programmers in less aggressive ways.
    • Always ensure that on programmers seats you have at minimum Asserts or Tooltips enabled when making direct imgui API calls! Otherwise it would severely hinder your ability to catch and correct mistakes!
    • Added io.ConfigErrorRecovery to enable error recovery support.
    • Added io.ConfigErrorRecoveryEnableAssert to assert on recoverable errors.
    • Added io.ConfigErrorRecoveryEnableDebugLog to output to debug log on recoverable errors.
    • Added io.ConfigErrorRecoveryEnableTooltip to enable displaying an error tooltip on recoverable errors. The tooltip include a way to enable asserts if they were disabled.
    • All options are enabled by default.
  • Windows: BeginChild(): made it possible to call SetNextWindowSize() on a child window using ImGuiChildFlags_ResizeX, ImGuiChildFlags_ResizeY in order to override its current size. (#1710, #8020)
  • Scrollbar: Shift+Click scroll to clicked location (pre-1.90.8 default). (#8002, #7328)
  • Scrollbar: added io.ConfigScrollbarScrollByPage setting (default to true). Set io.ConfigScrollbarScrollByPage=false to enforce always scrolling to clicked location. (#8002, #7328)
  • Drags: split ImGuiSliderFlags_AlwaysClamp into two distinct flags: (#7968, #3361, #76)
    • ImGuiSliderFlags_AlwaysClamp = ImGuiSliderFlags_ClampOnInput + ImGuiSliderFlags_ClampZeroRange.
    • Previously _AlwaysClamp only did the equivalent of _ClampOnInput.
    • Added ImGuiSliderFlags_ClampOnInput which is now a subset of _AlwaysClamp (note that it was the old name of _AlwaysClamp, but we are reintroducing that name).
    • Added ImGuiSliderFlags_ClampZeroRange to enforce clamping even when v_min==v_max==0.0f in drag functions. Sliders are not affected.
  • Tooltips, Drag and Drop: Fixed an issue where the fallback drag and drop payload tooltip appeared during drag and drop release.
  • Tooltips, Drag and Drop: Stabilized name of drag and drop tooltip window so thattransitioning from an item tooltip to a drag tooltip doesn't leak window auto-sizing info from one to the other. (#8036)
  • Tooltips: Tooltips triggered from touch inputs are positioned above the item. (#8036)
  • Backends: SDL3: Update for API changes: SDL_bool removal. SDL_INIT_TIMER removal.
  • Backends: WebGPU: Fixed DAWN api change using WGPUStringView in WGPUShaderSourceWGSL. (#8009, #8010) [@blitz-research]

Changes from 1.91.2 to 1.91.3 in the Docking branch:

  • Backends: SDL2, SDL3: Fixed building for UWP platforms. (#8008)
  • Backends: Win32: Use ResisterClassW()/CreateWindowExW() for secondary viewports, to ensure correct IME input even if the backend was compiled in MBCS mode. (#7979, #5725)

Also see previous releases details.
Note that GitHub are now clamping release notes sometimes really badly, click on a header/title to read full notes.

❤️ A month ago was the 10th anniversary of v1.00! Read: 10 years of Dear ImGui ! 🎉

💰 🙏 Dear ImGui is funded by your contributions and absolutely needs them to sustain and grow. We can invoice and accommodate to many situations. If your company uses Dear ImGui, please reach out. See Funding page. Did you know? If you need an excuse to pay, you may buy licenses for Test Engine and buy hours of support (and cough not use them all) and that will contribute to fund Dear ImGui.