|  |  | @@ -32,7 +32,7 @@ HOW TO UPDATE? | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | ----------------------------------------------------------------------- |  |  |  | ----------------------------------------------------------------------- | 
			
		
	
		
		
			
				
					
					|  |  |  |  VERSION 1.89.1 (In Progress) |  |  |  |  VERSION 1.89.1 WIP (In Progress) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | ----------------------------------------------------------------------- |  |  |  | ----------------------------------------------------------------------- | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | - Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code |  |  |  | - Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code | 
			
		
	
	
		
		
			
				
					
					|  |  | @@ -48,63 +48,63 @@ Decorated log and release notes: https://github.com/ocornut/imgui/releases/tag/v | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | Breaking changes: |  |  |  | Breaking changes: | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  - Layout: Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548) |  |  |  | - 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. |  |  |  |   This relates to when moving the cursor position beyond current boundaries WITHOUT submitting an item. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - Previously this would make the window content size ~200x200: |  |  |  |   - Previously this would make the window content size ~200x200: | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |        Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + End(); |  |  |  |       Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + End(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - Instead, please submit an item: |  |  |  |   - Instead, please submit an item: | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |        Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + Dummy(ImVec2(0,0)) + End(); |  |  |  |       Begin(...) + SetCursorScreenPos(GetCursorScreenPos() + ImVec2(200,200)) + Dummy(ImVec2(0,0)) + End(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - Alternative: |  |  |  |   - Alternative: | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |        Begin(...) + Dummy(ImVec2(200,200)) + End(); |  |  |  |       Begin(...) + Dummy(ImVec2(200,200)) + End(); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    Content size is now only extended when submitting an item. |  |  |  |   Content size is now only extended when submitting an item. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    With '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' this will now be detected and assert. |  |  |  |   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. |  |  |  |   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, |  |  |  |   (This incorrect pattern has been mentioned or suggested in: #4510, #3355, #1760, #1490, #4152, #150, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     threads have been amended to refer to this issue). |  |  |  |    threads have been amended to refer to this issue). | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |  - Renamed and merged keyboard modifiers key enums and flags into a same set:  (#4921, #456) |  |  |  | - Renamed and merged keyboard modifiers key enums and flags into a same set:  (#4921, #456) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     - ImGuiKey_ModCtrl  and ImGuiModFlags_Ctrl  -> ImGuiMod_Ctrl |  |  |  |    - ImGuiKey_ModCtrl  and ImGuiModFlags_Ctrl  -> ImGuiMod_Ctrl | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     - ImGuiKey_ModShift and ImGuiModFlags_Shift -> ImGuiMod_Shift |  |  |  |    - ImGuiKey_ModShift and ImGuiModFlags_Shift -> ImGuiMod_Shift | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     - ImGuiKey_ModAlt   and ImGuiModFlags_Alt   -> ImGuiMod_Alt |  |  |  |    - ImGuiKey_ModAlt   and ImGuiModFlags_Alt   -> ImGuiMod_Alt | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     - ImGuiKey_ModSuper and ImGuiModFlags_Super -> ImGuiMod_Super |  |  |  |    - ImGuiKey_ModSuper and ImGuiModFlags_Super -> ImGuiMod_Super | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    Kept inline redirection enums (will obsolete). |  |  |  |   Kept inline redirection enums (will obsolete). | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    This change simplifies a few things, reduces confusion, and will facilitate upcoming |  |  |  |   This change simplifies a few things, reduces confusion, and will facilitate upcoming | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    shortcut/input ownership apis. |  |  |  |   shortcut/input ownership apis. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - The ImGuiKey_ModXXX were introduced in 1.87 and mostly used by backends. |  |  |  |   - The ImGuiKey_ModXXX were introduced in 1.87 and mostly used by backends. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - The ImGuiModFlags_XXX have been exposed in imgui.h but not really used by any public api, |  |  |  |   - The ImGuiModFlags_XXX have been exposed in imgui.h but not really used by any public api, | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |      only by third-party extensions. They were however subject to a recent rename |  |  |  |     only by third-party extensions. They were however subject to a recent rename | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |      (ImGuiKeyModFlags_XXX -> ImGuiModFlags_XXX) and we are exceptionally commenting out |  |  |  |     (ImGuiKeyModFlags_XXX -> ImGuiModFlags_XXX) and we are exceptionally commenting out | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |      the older ImGuiKeyModFlags_XXX names ahead of obsolescence schedule to reduce confusion |  |  |  |     the older ImGuiKeyModFlags_XXX names ahead of obsolescence schedule to reduce confusion | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |      and because they were not meant to be used anyway. |  |  |  |     and because they were not meant to be used anyway. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |  - Removed io.NavInputs[] and ImGuiNavInput enum that were used to feed gamepad inputs. |  |  |  | - Removed io.NavInputs[] and ImGuiNavInput enum that were used to feed gamepad inputs. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    Basically 1.87 already obsoleted them from the backend's point of view, but internally |  |  |  |   Basically 1.87 already obsoleted them from the backend's point of view, but internally | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    our navigation code still used this array and enum, so they were still present. |  |  |  |   our navigation code still used this array and enum, so they were still present. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    Not anymore! (#4921, #4858, #787, #1599, #323) |  |  |  |   Not anymore! (#4921, #4858, #787, #1599, #323) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    Transition guide: |  |  |  |   Transition guide: | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     - Official backends from 1.87+                  -> no issue. |  |  |  |    - Official backends from 1.87+                  -> no issue. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     - Official backends from 1.60 to 1.86           -> will build and convert gamepad inputs, unless IMGUI_DISABLE_OBSOLETE_KEYIO is defined. Need updating! |  |  |  |    - Official backends from 1.60 to 1.86           -> will build and convert gamepad inputs, unless IMGUI_DISABLE_OBSOLETE_KEYIO is defined. Need updating! | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |     - Custom backends not writing to io.NavInputs[] -> no issue. |  |  |  |    - 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! |  |  |  |    - 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[]. |  |  |  |    - TL;DR: Backends should call io.AddKeyEvent()/io.AddKeyAnalogEvent() with ImGuiKey_GamepadXXX values instead of filling io.NavInput[]. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    The ImGuiNavInput enum 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 |  |  |  |   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 |  |  |  |   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). |  |  |  |   widgets intercepting navigation events via the named enums (in which case you can upgrade your code). | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |  - DragInt()/SliderInt(): Removed runtime patching of invalid "%f"/"%.0f" types of format strings. |  |  |  | - 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. |  |  |  |   This was obsoleted in 1.61 (May 2018). See 1.61 changelog for details. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |  - Changed signature of ImageButton() function: (#5533, #4471, #2464, #1390) |  |  |  | - Changed signature of ImageButton() function: (#5533, #4471, #2464, #1390) | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. |  |  |  |   - Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - Old signature: bool ImageButton(ImTextureID tex_id, ImVec2 size, ImVec2 uv0 = ImVec2(0,0), ImVec2 uv1 = ImVec2(1,1), int frame_padding = -1, ImVec4 bg_col = ImVec4(0,0,0,0), ImVec4 tint_col = ImVec4(1,1,1,1)); |  |  |  |   - Old signature: bool ImageButton(ImTextureID tex_id, ImVec2 size, ImVec2 uv0 = ImVec2(0,0), ImVec2 uv1 = ImVec2(1,1), int frame_padding = -1, ImVec4 bg_col = ImVec4(0,0,0,0), ImVec4 tint_col = ImVec4(1,1,1,1)); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |      - used the ImTextureID value to create an ID. This was inconsistent with other functions, led to ID conflicts, and caused problems with engines using transient ImTextureID values. |  |  |  |     - used the ImTextureID value to create an ID. This was inconsistent with other functions, led to ID conflicts, and caused problems with engines using transient ImTextureID values. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |      - had a FramePadding override which was inconsistent with other functions and made the already-long signature even longer. |  |  |  |     - had a FramePadding override which was inconsistent with other functions and made the already-long signature even longer. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - New signature: bool ImageButton(const char* str_id, ImTextureID tex_id, ImVec2 size, ImVec2 uv0 = ImVec2(0,0), ImVec2 uv1 = ImVec2(1,1), ImVec4 bg_col = ImVec4(0,0,0,0), ImVec4 tint_col = ImVec4(1,1,1,1)); |  |  |  |   - New signature: bool ImageButton(const char* str_id, ImTextureID tex_id, ImVec2 size, ImVec2 uv0 = ImVec2(0,0), ImVec2 uv1 = ImVec2(1,1), ImVec4 bg_col = ImVec4(0,0,0,0), ImVec4 tint_col = ImVec4(1,1,1,1)); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |      - requires an explicit identifier. You may still use e.g. PushID() calls and then pass an empty identifier. |  |  |  |     - requires an explicit identifier. You may still use e.g. PushID() calls and then pass an empty identifier. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |      - always uses style.FramePadding for padding, to be consistent with other buttons. You may use PushStyleVar() to alter this. |  |  |  |     - always uses style.FramePadding for padding, to be consistent with other buttons. You may use PushStyleVar() to alter this. | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |    - As always we are keeping a redirection function available (will obsolete later). |  |  |  |   - As always we are keeping a redirection function available (will obsolete later). | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |  - Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)'. (#1057) |  |  |  | - 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); |  |  |  |   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); |  |  |  |   If you used TreePush() replace with TreePush((void*)NULL); | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |  - Removed support for 1.42-era IMGUI_DISABLE_INCLUDE_IMCONFIG_H / IMGUI_INCLUDE_IMCONFIG_H. (#255) |  |  |  | - 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. |  |  |  |   They only made sense before we could use IMGUI_USER_CONFIG. | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | Other Changes: |  |  |  | Other Changes: | 
			
		
	
	
		
		
			
				
					
					|  |  |   |