diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt index c2ec2c3cb..9db6158bd 100644 --- a/docs/CHANGELOG.txt +++ b/docs/CHANGELOG.txt @@ -32,11 +32,26 @@ HOW TO UPDATE? ----------------------------------------------------------------------- - VERSION 1.89 WIP (In Progress) + VERSION 1.89 (Released 2022-11-15) ----------------------------------------------------------------------- +Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v1.89 + Breaking changes: + - Layout: Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548) + This relates to when moving the cursor position beyond current boundaries WITHOUT submitting an item. + - Previously this would make the window content size ~200x200: + Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + End(); + - Instead, please submit an item: + Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + Dummy(ImVec2(0,0)) + End(); + - Alternative: + Begin(...) + Dummy(ImVec2(200,200)) + End(); + Content size is now only extended when submitting an item. + With '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will now be detected and assert. + Without '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will silently be fixed until we obsolete it. + (This incorrect pattern has been mentioned or suggested in: #4510, #3355, #1760, #1490, #4152, #150, + threads have been amended to refer to this issue). - Renamed and merged keyboard modifiers key enums and flags into a same set: (#4921, #456) - ImGuiKey_ModCtrl and ImGuiModFlags_Ctrl -> ImGuiMod_Ctrl - ImGuiKey_ModShift and ImGuiModFlags_Shift -> ImGuiMod_Shift @@ -61,11 +76,11 @@ Breaking changes: - Custom backends not writing to io.NavInputs[] -> no issue. - Custom backends writing to io.NavInputs[] -> will build and convert gamepad inputs, unless IMGUI_DISABLE_OBSOLETE_KEYIO is defined. Need fixing! - TL;DR: Backends should call io.AddKeyEvent()/io.AddKeyAnalogEvent() with ImGuiKey_GamepadXXX values instead of filling io.NavInput[]. - That data was essentially 1.60's attempt to combine keyboard and gamepad inputs with named + The ImGuiNavInput enum was essentially 1.60's attempt to combine keyboard and gamepad inputs with named semantic, but the additional indirection and copy added complexity and got in the way of other incoming work. User's code (other than backends) should not be affected, unless you have custom widgets intercepting navigation events via the named enums (in which case you can upgrade your code). - - Removed runtime patching of invalid "%f"/"%.0f" types of format strings for DragInt()/SliderInt(). + - DragInt()/SliderInt(): Removed runtime patching of invalid "%f"/"%.0f" types of format strings. This was obsoleted in 1.61 (May 2018). See 1.61 changelog for details. - Changed signature of ImageButton() function: (#5533, #4471, #2464, #1390) - Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. @@ -79,34 +94,15 @@ Breaking changes: - Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)'. (#1057) Must always pass a pointer value explicitly, NULL/nullptr is ok but require cast, e.g. TreePush((void*)nullptr); If you used TreePush() replace with TreePush((void*)NULL); - - Commented out redirecting functions/enums names that were marked obsolete in 1.77 and 1.79 (August 2020): (#3361) - - DragScalar(), DragScalarN(), DragFloat(), DragFloat2(), DragFloat3(), DragFloat4() - - SliderScalar(), SliderScalarN(), SliderFloat(), SliderFloat2(), SliderFloat3(), SliderFloat4() - - For old signatures ending with (..., const char* format, float power = 1.0f) -> use (..., format ImGuiSliderFlags_Logarithmic) if power != 1.0f. - - BeginPopupContextWindow(const char*, ImGuiMouseButton, bool) -> use BeginPopupContextWindow(const char*, ImGuiPopupFlags) - - OpenPopupContextItem() (briefly existed from 1.77 to 1.79) -> use OpenPopupOnItemClick() - - Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548) - This relates to when moving the cursor position beyond current boundaries WITHOUT submitting an item. - - Previously this would make the window content size ~200x200: - Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + End(); - - Instead, please submit an item: - Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + Dummy(ImVec2(0,0)) + End(); - - Alternative: - Begin(...) + Dummy(ImVec2(200,200)) + End(); - Content size is now only extended when submitting an item. - With '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will now be detected and assert. - Without '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will silently be fixed until we obsolete it. - (This incorrect pattern has been mentioned or suggested in: #4510, #3355, #1760, #1490, #4152, #150, - threads have been amended to refer to this issue). - Removed support for 1.42-era IMGUI_DISABLE_INCLUDE_IMCONFIG_H / IMGUI_INCLUDE_IMCONFIG_H. (#255) They only made sense before we could use IMGUI_USER_CONFIG. Other Changes: -- Popups & Modals: fixed nested Begin() being erroneously input-inhibited. While it is - unusual, you can nest a Begin() inside a popup or modal, it is occasionally useful to - achieve certains things (e.g. some ways to implement suggestion popup #718, #4461). +- Popups & Modals: fixed nested Begin() inside a popup being erroneously input-inhibited. + While it is unusual, you can nest a Begin() inside a popup or modal, it is occasionally + useful to achieve certain things (e.g. to implement suggestion popups #718, #4461). - Inputs: Standard widgets now claim for key/button ownership and test for them. - Fixes scenario where e.g. a Popup with a Selectable() reacting on mouse down (e.g. double click) closes, and behind it is another window with an item reacting @@ -137,7 +133,7 @@ Other Changes: - IsItemHovered: Added ImGuiHoveredFlags_DelayNormal and ImGuiHoveredFlags_DelayShort flags, allowing to introduce a shared delay for tooltip idioms. The delays are respectively io.HoverDelayNormal (default to 0.30f) and io.HoverDelayFast (default to 0.10f). (#1485) -- IsItemHovered: Added ImGuiHoveredFlags_NoSharedDelay to disable sharing delays between itemm, +- IsItemHovered: Added ImGuiHoveredFlags_NoSharedDelay to disable sharing delays between items, so moving from one item to a nearby one will requires delay to elapse again. (#1485) - Tables: activating an ID (e.g. clicking button inside) column doesn't prevent columns output flags from having ImGuiTableColumnFlags_IsHovered set. (#2957) @@ -166,15 +162,15 @@ Other Changes: the gap between a menu item inside a window and a child-menu in a secondary viewport. (#5614) - Menus: Fixed using IsItemHovered()/IsItemClicked() on BeginMenu(). (#5775) - 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. - (the fix may have side-effect so labelld as experimental as we may need to revert) (#5775) + a window which is neither a popup neither a menu used to incorrectly close and reopen the menu + (the fix may have side-effect and is labelld as experimental as we may need to revert). (#5775) - Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item in parent window when the parent is not a popup. (#5730) - Menus, Nav: Fixed not being able to close a menu with Left arrow when parent is not a popup. (#5730) - Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple BeginMenu() call with same names). (#1207) - Menus: Fixed a one-frame issue where SetNextWindowXXX data are not consumed by a BeginMenu() - returning false (specifically ) + returning false. - Nav: Fixed moving/resizing window with gamepad or keyboard when running at very high framerate. - Nav: Pressing Space/GamepadFaceDown on a repeating button uses the same repeating rate as a mouse hold. - Nav: Fixed an issue opening a menu with Right key from a non-menu window. diff --git a/imgui.cpp b/imgui.cpp index 83607f7d8..190fd0511 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.89 WIP +// dear imgui, v1.89 // (main code and documentation) // Help: @@ -4344,7 +4344,7 @@ static void LockWheelingWindow(ImGuiWindow* window, float wheel_amount) if (window) g.WheelingWindowReleaseTimer = ImMin(g.WheelingWindowReleaseTimer + ImAbs(wheel_amount) * WINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER, WINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER); else - g.WheelingWindowReleaseTimer = NULL; + g.WheelingWindowReleaseTimer = 0.0f; if (g.WheelingWindow == window) return; IMGUI_DEBUG_LOG_IO("LockWheelingWindow() \"%s\"\n", window ? window->Name : "NULL"); diff --git a/imgui.h b/imgui.h index 639100198..3cf1d20c6 100644 --- a/imgui.h +++ b/imgui.h @@ -1,4 +1,4 @@ -// dear imgui, v1.89 WIP +// dear imgui, v1.89 // (headers) // Help: @@ -22,8 +22,8 @@ // Library Version // (Integer encoded as XYYZZ for use in #if preprocessor conditionals, e.g. '#if IMGUI_VERSION_NUM > 12345') -#define IMGUI_VERSION "1.89 WIP" -#define IMGUI_VERSION_NUM 18838 +#define IMGUI_VERSION "1.89" +#define IMGUI_VERSION_NUM 18900 #define IMGUI_HAS_TABLE /* diff --git a/imgui_demo.cpp b/imgui_demo.cpp index 01569c8b2..9bd188fa7 100644 --- a/imgui_demo.cpp +++ b/imgui_demo.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.89 WIP +// dear imgui, v1.89 // (demo code) // Help: diff --git a/imgui_draw.cpp b/imgui_draw.cpp index 7a8f229eb..4aa5e8a9c 100644 --- a/imgui_draw.cpp +++ b/imgui_draw.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.89 WIP +// dear imgui, v1.89 // (drawing and font code) /* diff --git a/imgui_internal.h b/imgui_internal.h index 1f0252427..62727c5b0 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -1,4 +1,4 @@ -// dear imgui, v1.89 WIP +// dear imgui, v1.89 // (internal structures/api) // You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! diff --git a/imgui_tables.cpp b/imgui_tables.cpp index d5f93f4b0..ed538dd1a 100644 --- a/imgui_tables.cpp +++ b/imgui_tables.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.89 WIP +// dear imgui, v1.89 // (tables and columns code) /* diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp index 1cd65ce6d..953de9a7a 100644 --- a/imgui_widgets.cpp +++ b/imgui_widgets.cpp @@ -1,4 +1,4 @@ -// dear imgui, v1.89 WIP +// dear imgui, v1.89 // (widgets code) /*