2.1.2 Update to Dear ImGui 1.91.1
- Updated to Dear ImGui 1.91.1
- Fixed wrongly build shared libs.
(Forwarded from https://github.com/ocornut/imgui/releases/tag/v1.91.1)
Changes (since v1.91.0)
We are moving a few platform related handlers from the ImGuiIO to the ImGuiPlatformIO structure.
- If you are using standard backends you'll have nothing to do.
- If you are using a custom and or third-party backend: we kept a legacy redirection but consider updating (you can check by enabling IMGUI_DISABLE_OBSOLETE_FUNCTIONS. Most likely the only functions you used that have moved are GetClipboardTextFn/SetClipboardTextFn().
- The ImGuiPlatformIO structure already existed in the docking branch to support multi-viewports, we are slowly introducing selected parts of it in the master branch in order to (in the future) add features related to e.g. querying monitor/desktop DPI scale.
Breaking Changes:
- BeginChild(): renamed ImGuiChildFlags.Border to ImGuiChildFlags.Borders for consistency. Kept inline redirection flag (will obsolete).
- IO: moved clipboard functions from ImGuiIO to ImGuiPlatformIO:
- io.GetClipboardTextFn -> platform_io.PlatformGetClipboardTextFn
- io.SetClipboardTextFn -> platform_io.PlatformSetClipboardTextFn
- in function signatures, changed void* user_data to ImGuiContext* ctx for consistency with other functions. Pull your user data from platform_io.ClipboardUserData if used.
- as this is will affect all users of custom engines/backends, we are providing proper legacy redirection (will obsolete).
- IO: moved other functions from ImGuiIO to ImGuiPlatformIO:
- io.PlatformOpenInShellFn -> platform_io.Platform_OpenInShellFn (ocornut/imgui#7660)
- io.PlatformSetImeDataFn -> platform_io.Platform_SetImeDataFn
- io.PlatformLocaleDecimalPoint -> platform_io.Platform_LocaleDecimalPoint (ocornut/imgui#7389, ocornut/imgui#6719, ocornut/imgui#2278)
- access those via GetPlatformIO() instead of GetIO(). (Because PlatformOpenInShellFn and PlatformSetImeDataFn were introduced extremely recently and often automatically set by core library and backends, we are exceptionally not maintaining a legacy redirection symbol for those two.)
- Commented the old ImageButton() signature obsoleted in 1.89 (~August 2022). (ocornut/imgui#5533, ocornut/imgui#4471, ocornut/imgui#2464, ocornut/imgui#1390)
- old ImageButton() used ImTextureId as item id (created issue with e.g. multiple buttons in same scope, transient texture id values, opaque computation of ID)
- new ImageButton() requires an explicit const char* str_id
- old ImageButton() had a frame_padding override argument.
- new ImageButton() always use style.FramePadding, which you can modify using PushStyleVar()/PopStyleVar().
Other Changes
- IO: Added GetPlatformIO() and ImGuiPlatformIO, pulled from 'docking' branch, which is a centralized spot to connect os/platform/renderer related functions. Clipboard, IME and OpenInShell hooks are moved here. (ocornut/imgui#7660)
- IO, InputText: fixed an issue where typing text in an InputText() would defer character processing by one frame, because of the trickling input queue. Reworked interleaved keys<>char trickling to take account for keys known to input characters. (ocornut/imgui#7889, ocornut/imgui#4921, ocornut/imgui#4858)
- Windows: adjust default ClipRect to better match rendering of thick borders (which are in theory not supported). Compensate for the fact that borders are centered around the windows edge rather than inner. (ocornut/imgui#7887, ocornut/imgui#7888 + ocornut/imgui#3312, ocornut/imgui#7540, ocornut/imgui#3756, ocornut/imgui#6170, ocornut/imgui#6365)
- Made BeginItemTooltip() and IsItemHovered() with delay flag infer an implicit ID (for ID-less items such as Text element) in a way that works when item resizes. (ocornut/imgui#7945, ocornut/imgui#1485)
- MultiSelect+TreeNode+Drag and Drop: fixed an issue where carrying a drag and drop payload over an already open tree node using multi-select would incorrectly select it. (ocornut/imgui#7850)
- MultiSelect+TreeNode: default open behavior is _OpenOnDoubleClick + _OpenOnArrow
when used in a multi-select context without any ImGuiTreeNode_OpenOnXXX flags set. (ocornut/imgui#7850) - Tables: fixes/revert a 1.90 change were outer border would be moved bottom and right by an extra pixel + rework the change so that contents doesn't overlap the bottom and right border in a scrolling table. (ocornut/imgui#6765, ocornut/imgui#3752, ocornut/imgui#7428)
- Tables: fixed an issue resizing columns or querying hovered column/row when using multiple synched instances that are layed out at different X positions. (ocornut/imgui#7933)
- Tabs: avoid queuing a refocus when tab is already focused, which would have the side-effect of e.g. closing popup on a mouse release. (ocornut/imgui#7914)
- InputText: allow callback to update buffer while in read-only mode. (ocornut/imgui_club#46)
- InputText: fixed an issue programmatically refocusing a multi-line input which was just active. (ocornut/imgui#4761, ocornut/imgui#7870)
- TextLink(), TextLinkOpenURL(): change mouse cursor to Hand shape when hovered. (ocornut/imgui#7885, ocornut/imgui#7660)
- Tooltips, Drag and Drop: made it possible to override BeginTooltip() position while inside a drag and drop source or target: a SetNextWindowPos() call won't be overridden. (ocornut/imgui#6973)
- PlotHistogram, PlotLines: register item ID and use button behavior in a more idiomatic manner, fixes preventing e.g. GetItemID() and other ID-based helper to work. (ocornut/imgui#7935, ocornut/imgui#3072)
- Style: added PushStyleVarX(), PushStyleVarY() helpers to conveniently modify only one component of a ImVec2 var.
- Fonts: made it possible to use PushFont()/PopFont() calls across Begin() calls. (ocornut/imgui#3224, ocornut/imgui#3875, ocornut/imgui#6398, ocornut/imgui#7903)