-
Notifications
You must be signed in to change notification settings - Fork 108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Memory Editor: doesn't seem to work with more than 24-bits of address space #20
Comments
By the way what it means @simuuz is I think you'll probably run into the same issue in your own memory watcher, so worth investigating a solution for the precision problem in large window (perhaps some fix to ImGuiListClipper could be done). |
@simuuz i think Omar is spot-on here. From wikipedia:
I needed something similar in the past so i adapted original scrollbar code to work with 64bit integers. You may test using that: // Vertical/Horizontal scrollbar
// The entire piece of code below is rather confusing because:
// - We handle absolute seeking (when first clicking outside the grab) and relative manipulation (afterward or when clicking inside the grab)
// - We store values as normalized ratio and in a form that allows the window content to change while we are holding on a scrollbar
// - We handle both horizontal and vertical scrollbars, which makes the terminology not ideal.
// Still, the code should probably be made simpler..
bool ScrollbarExI64(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, int64_t* p_scroll_v, int64_t size_avail_v, int64_t size_contents_v, ImDrawCornerFlags rounding_corners)
{
ImGuiContext& g = *GImGui;
ImGuiWindow* window = g.CurrentWindow;
if (window->SkipItems)
return false;
const float bb_frame_width = bb_frame.GetWidth();
const float bb_frame_height = bb_frame.GetHeight();
if (bb_frame_width <= 0.0f || bb_frame_height <= 0.0f)
return false;
// When we are too small, start hiding and disabling the grab (this reduce visual noise on very small window and facilitate using the resize grab)
float alpha = 1.0f;
if ((axis == ImGuiAxis_Y) && bb_frame_height < g.FontSize + g.Style.FramePadding.y * 2.0f)
alpha = ImSaturate((bb_frame_height - g.FontSize) / (g.Style.FramePadding.y * 2.0f));
if (alpha <= 0.0f)
return false;
const ImGuiStyle& style = g.Style;
const bool allow_interaction = (alpha >= 1.0f);
const bool horizontal = (axis == ImGuiAxis_X);
ImRect bb = bb_frame;
bb.Expand(ImVec2(-ImClamp(IM_ROUND(bb_frame_width - 2.0f), 0.0f, 3.0f), -ImClamp(IM_ROUND(bb_frame_height - 2.0f), 0.0f, 3.0f)));
// V denote the main, longer axis of the scrollbar (= height for a vertical scrollbar)
const float scrollbar_size_v = horizontal ? bb.GetWidth() : bb.GetHeight();
// Calculate the height of our grabbable box. It generally represent the amount visible (vs the total scrollable amount)
// But we maintain a minimum size in pixel to allow for the user to still aim inside.
IM_ASSERT(ImMax<float>(size_contents_v, size_avail_v) > 0.0f); // Adding this assert to check if the ImMax(XXX,1.0f) is still needed. PLEASE CONTACT ME if this triggers.
const int64_t win_size_v = ImMax(ImMax(size_contents_v, size_avail_v), 1L);
const float grab_h_pixels = ImClamp(scrollbar_size_v * ((float)size_avail_v / (float)win_size_v), style.GrabMinSize, scrollbar_size_v);
const float grab_h_norm = grab_h_pixels / scrollbar_size_v;
// Handle input right away. None of the code of Begin() is relying on scrolling position before calling Scrollbar().
bool held = false;
bool hovered = false;
ImGui::ButtonBehavior(bb, id, &hovered, &held, ImGuiButtonFlags_NoNavFocus);
int64_t scroll_max = ImMax(1L, size_contents_v - 1/*size_avail_v*/); // size_contents_v is number of items. this allows scrolling to see only last item.
*p_scroll_v = ImClamp(*p_scroll_v, 0L, scroll_max);
float scroll_ratio = ImSaturate((float)*p_scroll_v / (float)scroll_max);
float grab_v_norm = scroll_ratio * (scrollbar_size_v - grab_h_pixels) / scrollbar_size_v;
if (held && allow_interaction && grab_h_norm <= 1.0f)
{
float scrollbar_pos_v = horizontal ? bb.Min.x : bb.Min.y;
float mouse_pos_v = horizontal ? g.IO.MousePos.x : g.IO.MousePos.y;
// Click position in scrollbar normalized space (0.0f->1.0f)
const float clicked_v_norm = ImSaturate((mouse_pos_v - scrollbar_pos_v) / scrollbar_size_v);
ImGui::SetHoveredID(id);
bool seek_absolute = false;
if (g.ActiveIdIsJustActivated)
{
// On initial click calculate the distance between mouse and the center of the grab
seek_absolute = (clicked_v_norm < grab_v_norm || clicked_v_norm > grab_v_norm + grab_h_norm);
if (seek_absolute)
g.ScrollbarClickDeltaToGrabCenter = 0.0f;
else
g.ScrollbarClickDeltaToGrabCenter = clicked_v_norm - grab_v_norm - grab_h_norm * 0.5f;
}
// Apply scroll
// It is ok to modify Scroll here because we are being called in Begin() after the calculation of ContentSize and before setting up our starting position
const float scroll_v_norm = ImSaturate((clicked_v_norm - g.ScrollbarClickDeltaToGrabCenter - grab_h_norm * 0.5f) / (1.0f - grab_h_norm));
*p_scroll_v = IM_ROUND(scroll_v_norm * scroll_max);//(win_size_contents_v - win_size_v));
// Update values for rendering
scroll_ratio = ImSaturate((float)*p_scroll_v / (float)scroll_max);
grab_v_norm = scroll_ratio * (scrollbar_size_v - grab_h_pixels) / scrollbar_size_v;
// Update distance to grab now that we have seeked and saturated
if (seek_absolute)
g.ScrollbarClickDeltaToGrabCenter = clicked_v_norm - grab_v_norm - grab_h_norm * 0.5f;
}
// Render
window->DrawList->AddRectFilled(bb_frame.Min, bb_frame.Max, ImGui::GetColorU32(ImGuiCol_ScrollbarBg), window->WindowRounding, rounding_corners);
const ImU32 grab_col = ImGui::GetColorU32(held ? ImGuiCol_ScrollbarGrabActive : hovered ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab, alpha);
ImRect grab_rect;
if (horizontal)
grab_rect = ImRect(ImLerp(bb.Min.x, bb.Max.x, grab_v_norm), bb.Min.y, ImLerp(bb.Min.x, bb.Max.x, grab_v_norm) + grab_h_pixels, bb.Max.y);
else
grab_rect = ImRect(bb.Min.x, ImLerp(bb.Min.y, bb.Max.y, grab_v_norm), bb.Max.x, ImLerp(bb.Min.y, bb.Max.y, grab_v_norm) + grab_h_pixels);
window->DrawList->AddRectFilled(grab_rect.Min, grab_rect.Max, grab_col, style.ScrollbarRounding);
return held;
}
void ScrollbarI64(ImGuiAxis axis, int64_t* content_pos, int64_t content_size)
{
ImGuiContext& g = *GImGui;
ImGuiWindow* window = g.CurrentWindow;
const ImGuiID id = ImGui::GetWindowScrollbarID(window, axis);
ImGui::KeepAliveID(id);
window->ScrollbarSizes[axis ^ 1] = g.Style.ScrollbarSize;
// Calculate scrollbar bounding box
const ImRect outer_rect = window->Rect();
const ImRect inner_rect = window->InnerRect;
const float border_size = window->WindowBorderSize;
const float scrollbar_size = window->ScrollbarSizes[axis ^ 1];
IM_ASSERT(scrollbar_size > 0.0f);
const float other_scrollbar_size = window->ScrollbarSizes[axis];
ImDrawCornerFlags rounding_corners = (other_scrollbar_size <= 0.0f) ? ImDrawCornerFlags_BotRight : 0;
ImRect bb;
if (axis == ImGuiAxis_X)
{
bb.Min = ImVec2(inner_rect.Min.x, ImMax(outer_rect.Min.y, outer_rect.Max.y - border_size - scrollbar_size));
bb.Max = ImVec2(inner_rect.Max.x, outer_rect.Max.y);
rounding_corners |= ImDrawCornerFlags_BotLeft;
}
else
{
bb.Min = ImVec2(ImMax(outer_rect.Min.x, outer_rect.Max.x - border_size - scrollbar_size), inner_rect.Min.y);
bb.Max = ImVec2(outer_rect.Max.x, window->InnerRect.Max.y);
rounding_corners |= ((window->Flags & ImGuiWindowFlags_NoTitleBar) && !(window->Flags & ImGuiWindowFlags_MenuBar)) ? ImDrawCornerFlags_TopRight : 0;
}
ScrollbarExI64(bb, id, axis, content_pos, inner_rect.Max[axis] - inner_rect.Min[axis], content_size, rounding_corners);
} |
Ah alright, thanks for the piece of code, really useful. Didn't know it was a problem with floating point precision. Sorry for the inconvenience |
is this fixed now? |
Nope.
The problem isn't only a matter of Scrollbar() supporting larger range, but generally all positions (e..g CursorPos) are stored as float. However if we assume use case where for a given large window the clipper is the ONLY used thing (aka no other widget submitted outside of clipper use) it may be possible to work out a simplified scheme toward fixing this. It would requires at minimum three things:
This may be feasible and fix some use cases (not all). |
… ranges (not fully tested) + clipper tweaks (#3609, #3962 + ocornut/imgui_club#20) This does NOT fix all problems with large ranges and floating point precision, it merely attenuate them.
I have pushed variety of tweaks/fixes to improve this from multiple angles. With those changes, e.g. in the
In memory editor a 30-bit range with 16 columns works more or less, scrolling on nav/up doesn't work. ocornut/imgui@a76bc52 Clipper: store initial precision loss and apply delta in clipper. ocornut/imgui@027a7ba Clipper: use line size instead of cursor comparison when ranges are large. ocornut/imgui@6e141a9 Internals: made ScrollbarEx() use ImS64 to facilitate use with larger ranges (not fully tested) (+ unrelated fixed a small bug while doing this 926addb and 20e040c) PS: None of those change requires a change to memory_editor they are changes in core dear imgui, but good to update memory editor to catch up with recent changes too. |
c71a50deb Version 1.87 e52bb147a Backends: GLFW: Added ImGui_ImplGlfw_InstallCallbacks()/ImGui_ImplGlfw_RestoreCallbacks(). (#4981) 732bc2058 Backends: GLFW: Handle spurious leave/enter sequences apparently submitted by X11/GLFW combo. (#4984) 40fd163a3 Backends: OpenGL3: Fix OpenGL ES2 includes on Apple systems. 2554b512c Backends: OSX: Forward keyDown/keyUp events to OS when unused by Dear ImGui. c6cab1f35 Backends: SDL: Added SDL_Renderer* parameter to ImGui_ImplSDL2_InitForSDLRenderer(). Use SDL_GetRendererOutputSize() instead of SDL_GL_GetDrawableSize() when bound to a SDL_Renderer. (#4927) c39192ba6 Backends: SDL_Renderer: Fix texture atlas format on big-endian hardware (#4927) 43177324c Backends: GLFW: Fixed miss untranslation of keypad keys. (#4921, #452) 6f73dbea8 TestEngine: submit window data to item system. 35e197f41 TestEngine: fixed InvisibleButton() and ArrowButton() not calling the info macro. 551ab84c2 Backends: OSX: Fix building with old Xcode versions. 422902dbd Correct typos (#4954, #4955), use IM_STATIC_ASSERT now that old pre-C++11 macro has been obsoleted. 64d910ad3 Removed IMGUI_API from inline templated classes. (#4962) 49e38a5b3 Revert moving ImGuiKeyModFlags to internal.h (amendc906c65) 9def2b04d IO: Added simple (incomplete) filter for duplicates to reduce data spam. (#4921, #4858) 5429f0f6b Backends: OSX, Android: Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. (#4921, #4858) c906c65ca (BREAKING) Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. Backends: update most. (#4921, #4858) 718daa153 Rendering: defer responsability of calling _PopUnusedDrawCmd() later so RenderDimmedBackgrounds()/RenderMouseCursor() don't need to deal with the side-effects (#4857, #4317) 075f4ac66 Don't merge ImDrawCmd which have had their IdxOffset changed to not be sequential. Fixed CTRL+Tab into an empty window causing artefacts on the highlight rectangle due to bad reordering on ImDrawCmd. 855533593 Shallow alignment of ImGuiKey stuff + moving some in internals. Internals: add offset to ImBitArray<>, simpify ActiveIdUsingKeyInputMask. 08f3aa897 Popups: Fix b17b2fb (#4936) 4caf1e9b5 Backends: GLFW: fix ImGui_ImplGlfw_TranslateUntranslatedKey() for grave accents. (#456, #2625) + fix preceeding commit. b17b2fb73 Popups: Fixed an issue when reopening a same popup multiple times would offset them by 1 pixel on the right. (#4936) cda3db144 Backends: SDL: Fixed key mapping for ImGuiKey_Menu (#4921) + misc typos (#4928) dd6a44abb Fix compiler warning for Intel compiler (#4934) 4fb0c1f96 Correct some typos in FAQ.md (#4924) cff034245 Internals: moved lines into a Inputs section. c2db4c246 Demo: draw a section of keyboard in "Inputs > Keyboard, Gamepad & Navigation state" to visualize keys. 69b697378 Comments, tweaks. 26e59c874 Nav: Fixed gamepad navigation in wrapping popups not wrapping all the way. (#4365) 62d6be374 IO: Removed ImGuiInputSource from public api for now, unnecessary. (#4858, #787) 5ea47d956 Backends: OSX: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 39c3412f9 Backends: SDL: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 3d8543374 Backends: GLFW: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 9f8c599ca Backends: Win32: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) f33bb9982 IO: added AddKeyAnalogEvent() and support for ImGuiKey_GamepadXXXX. (#4858, #787) 6e63fcaca Backends: Vulkan: Amends, fix miscast on 32-bit systems with the right ImTextureID=ImU64. (#914) ceb26bac4 Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, amends. (#914) 29f104319 Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, add ImGui_ImplVulkan_AddTexture(). (#914) 19471da3f Popups: Fix a crash when a new window is created after a modal on the same frame. (#4920) 7ad42ff43 IO: renamed io.ConfigInputEventQueue to io.ConfigInputTrickleEventQueue. (#4858) 26d04c948 Tables: Fixed positioning of Sort icon on right-most column with some settings (not resizable + no borders). (#4918). 97b1ffcb3 IO: Reorder enums, compact a little in header. Removed const from internal GetKeyData(). 91ae56af4 Removed support for legacy arithmetic operators (+*/) when inputing text into a slider/drag. (#4917, #3184) 673f5e588 IO: moved fields to put more focus on the new functions + update misc docs/references + update main.mm in Apple+Metal example (#4858) 90a696163 IO: apply same flooring as UpdateMouseInputs() in dupe event processing. (#4858) + provision for test engine. 7374b96f5 IO: Added input queue. (#4858, #2787, #1992, #3383, #2525, #1320) b8e56dce8 IO: Added AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() api + updated all Backends. (#4858) (input queue code will be next commit) b6582a471 Backends: OSX: Fix Game Controller nav mapping to use shoulder for both focusing and tweak speed. (#4759) 92c4ff1c2 Rename ImGuiKey_LeftControl to ImGuiKey_LeftCtrl, ImGuiKey_RightControl to ImGuiKey_RightCtrl + made key order match mods order. (#4858) 075576744 Backends: move io.AddKeyModsEvent() next to io.AddKeyEvent() submission, rely on mods from platform/source. (#4858) + fix #2622 again broken by 746c9f7 eb823655a Removed support for pre-C++11 compilers. We'll stop supporting VS2010. (#4537) f84c93d83 Update BACKENDS.md (#4909) 45c4365ec Backends: GLFW: glfwGetKeyName is not implemented in emscripten (#4907, #4858) 6188e9410 Examples: Vulkan: fill Subpass and MSAASamples to increase discoverability (#4886) + IO docs update (#4858) 553b04883 Backends: SDL: Fix for Emscriptem. Amend 98ce013. 955163568 IO: fix SetKeyEventNativeData() not handling ImGuiKey_None the same way as AddKeyEvent(). (#4905, #4858) 200a8f1ea Backends: GLFW: Update mouse inputs using glfwSetCursorPosCallback() (breaking) + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons. 98ce01324 Backends: SDL: Update mouse inputs using SDL_MOUSEMOTION/SDL_WINDOWEVENT_LEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons. bf4de2a46 Backends: Win32: Update mouse inputs using WM_MOUSEMOVE/WM_MOUSELEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before Key Modifiers. 7f8a89c25 Backends: Win32, SDL: maintain MouseButtonsDown instead of using IsAnyMouseDown(). Internals: added GetInputSourceName(). 457d4b7b7 Backends: OSX: Adedd basic IME support for macOS. (#3108, #2598) 290c51735 Fixed warning in ImFloorSigned(). (#4889) 0818a4239 Backend: WebGPU: Fixed incorrect size parameters in WGPU backend (#4891) 96186a93b Typo correction in imgui_demo.cpp (#4892) 956e03009 Backends: OSX: Build fIx. Made GetKeyName() input tolerant. Internals: added GetNavInputName(). e8172fdfb Rename io.AddKeyModEvent() -> io.AddKeyModsEvent() and updated backends accordingly. (#2625, #4858) b2e2cc44c Backends: OSX: Fixed typo. 790132a67 Added io.AddKeyModEvent() and updated backends accordingly. (#2625, #4858) 1797135db Backends: Android: Update to use io.AddEventKey() will full key map (#2625, #4858) ee436aa80 Backends: OSX: Update to use io.AddEventKey() will full key map (#2625, #1873, #4858) da1864d79 Backends: GLUT: Update to use io.AddEventKey() will full key map (#2625, #4858) 1bfe4a75b Backends: Allegro5: Update to use io.AddEventKey() will full key map (#2625, #4858) fe646ea59 Backends: SDL2: Update to use io.AddEventKey() will full key map (#2625, #4858) + created localized key (using keycode instead of scancode) (#456) ecd212c01 Backends: GLFW: Update to use io.AddEventKey() will full key map (#2625, #4858) 746c9f76e Backends: Win32: Update to use io.AddEventKey() will full key map (#2625, #4858) bf08c13e9 Inputs: Extra Keys / AddKeyEvent(): bidirectional mapping, basic CI, simplify backends, asserts on misuses, tested backward compat. (#2625, #4858, #2787) 3b6692930 Inputs: Extra Keys / AddKeyEvent(): Added ImGuiKey values, io.AddKeyEvent(), GetKeyName(), IMGUI_DISABLE_OBSOLETE_KEYIO. Obsoleted GetKeyIndex(), io.KeyMap[], io.KeysDown[]. (#2625, #4858, #2787) afffcd581 Inputs: rename ImGuiKey_KeyPadEnter > ImGuiKey_KeypadEnter (#2625) 100ede576 Backends: GLFW: Fix CTRL+A, CTRL+Y, CTRL+Z to match keyboard layout. Converting GLFW untranslated keycodes back to translated keycodes. (#456, #2625) 4d023bd7f Fix for using IMGUI_DISABLE_OBSOLETE_FUNCTIONS de36ff043 Platform IME: add ImGuiPlatformImeData::InputLineHeight (unused by win32). (#3113) 29a8ee082 Platform IME: add ImGuiPlatformImeData::WantVisible, hide IME when not used. (#2589) 1cbfe9352 Platform IME: [windows] call ImmSetCandidateWindow() to position candidate window. 2706c9d66 Platform IME: reworked internals to simplify adding new features. 3a90dc389 Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API. 04bc0b0bb Fix IdxBuffer related comments. (#4845, #4863) 28eabcb09 Internals: refactor: mouse input functions into their own section. 206b9ead8 IO: removed unused MouseDragMaxDistanceAbs(). Using a shortcut variable in UpdateMouseInputs(). c5a3cae83 Reordered some IO fields. Misc comments. Removed beta marker from tables comments. efa50f72a Backends: Metal: Ignore ImDrawCmd where ElemCount == 0. (#4857) b0a6cd630 Fixed a situation where CTRL+Tab or Modal can occasionally lead to the creation of ImDrawCmd with zero triangles, (#4857) 2402958ae Commented out redirecting functions/enums names that were marked obsolete in 1.69, 1.70, 1.71, 1.72 92d7869fc Happy new year! 83d22f4e4 Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::AddCallback().(#4843, #4844) 41e39ea6e Backends: Metal: Add Metal C++ bindings support. (#4824, #4746) dbeea7220 Backends: Silence overzealous warnings. (#4834) Add comments about SetDragDropPayload() return value. (#4835) 89a28209e Version 1.87 WIP + Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init, added in 1.86 (#4468, #4830) 980deb4c9 Add missing include guard to avoid declaring ImFontAtlasGetBuilderForStbTruetype() function. 512c54bbc Version 1.86 612b787b0 Menus: fixed top-level menu from not consistently using style.PopupRounding. (#4788) 4bad852a7 Backends: SDL_Renderer: Handle change to SDL_RenderGeometryRaw() function signature in SDL 2.0.19 (#4819) 0636f9ada InputText: fixed Shift+Delete from not cutting into clipboard. (#4818, #1541) d9bc1e44a Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. (#368, #375) 0cdc4a956 Backends: Win32: Store left/right variants of Ctrl/Shift/Alt mods in KeysDown[] array. (#2625) 4a43dcb94 Internals: reduced side-effects of setting window->HiddenFramesForRenderOnly > 0 1c4066cd9 Internals: UpdateWindowInFocusOrderList: amend a528398 to fix docking. (#3496, #4797) 389982eb5 Backends: OpenGL3: Using buffer orphaning + glBufferSubData(), seems to fix leaks with multi-viewports with some Intel HD drivers.. (#4468, #4504, #2981, #3381) 48f263336 Menus: fixed closing a menu inside a popup/modal. Fixed menu inside a popup/modal not inhibiting hovering of items in the popup/modal. (#3496, #4797) a528398c7 Internals: support for varying _ChildWindow flag for menu windows. (#3496, #4797) 11638fdf7 Menus: reuse more menu windows when stacked over popups. 0e8c199e8 CI: Use regex to fix vcxproj platform and toolset versions. (#3249) Remove Discord integration. d7350668d Fix OSX warnings + Examples/Apple+GL2 calls super reshape. (#4759, #1873) 1b6b8602c Backends: OSX: Fix keyboard support. Handle scroll cancel. Don't set mouse cursor shape unconditionally. (#4759, #4253, #1873) f71ee5203 Fix infinite loop in ImFontGlyphRangesBuilder::AddRanges if the user passes upper range = UINT16_MAX without IMGUI_USE_WCHAR32. (#4802) b720f1f03 Backends: OSX: Add Game Controller support. (#4759) 8a9fe2686 Menus: fixed closing a menu by clicking on its menu-bar item when inside a popup. (#3496, #4797) c80179921 Added an assertion for the common user mistake of using "" as an identifier at the root level of a window. (#1414, #2562, #2807, #4008, #4158, #4375, #4548, #4657, #4796) a8e1dde35 Fix static analyser, update readme. e03383d08 Fixes for tooltip over modals leading to incorrect modal dimming. (#4729) bdd2a9431 InputTextMultiline: fixed vertical tracking with large values of FramePadding.y. (#3781, #4794) 072caa4a9 InputText: fixed incorrect padding when FrameBorder > 0. (#4794, #3781) 270d4d085 Nav, Docking: Fix crash on dimming docked window and DockSpaceOverViewport() with PassthruCentralNode. a19815dc6 Backends: Allegro5: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790) c80e8b964 Backends: OpenGL2, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790) b38af0f52 Popups: Fix popups being closed by newly appearing windows. (#4317) 657073a65 Nav, Docking: fix dimming crash with accessing zero-cmd ImDrawList (amend 1dc3af3, 23ef6c1) 20e040c85 Clipper, Tables: remove table specific code path should now be ok (added assert). 926addbfe Clipper: fixed invalid state when number of frozen table row is smaller than ItemCount. 027a7ba3e Clipper: use line size instead of cursor comparaison when range are large. (#3609, #3962 + ocornut/imgui_club#20) a76bc52da Window, Clipper: store initial precision loss and apply in clipper. (#3609, #3962 + ocornut/imgui_club#20) 6e141a9ca Internals: made ScrollbarEx() use ImS64 to facilitate use with larger ranges (not fully tested) + clipper tweaks (#3609, #3962 + ocornut/imgui_club#20) eea836135 InputText: fix buffer modifications in callbacks while using resize callback (#4784) aa41f1658 Separator: fixed cover all columns while called inside a table. (#4787, #205) 23ef6c149 Reworked modal/ctrl+tab dimming system to be entirely processed at end of the frame (backported 1dc3af3 from docking) da3a36eef Backport from docking branch: minor stuff. 78c6435db Inputs: (breaking wip) removed IsMouseTripleClicked() added recently (during 1.86 WIP), replaced with GetMouseClickedCount(). (#3229) 5c388c39f Backends: SDL_Renderer: Added support for large meshes (64k+ vertices) with 16-bit indices, enable 'ImGuiBackendFlags_RendererHasVtxOffset' in this backend. (#3926) 5b1a70aa2 Fixed RenderRectFilledWithHole() (used by docking) + added dummy EndFrameDrawDimmedBackgrounds() stub in master. 440824d43 Backends: Fixed early out on empty clip rect. In particular, DX12 backend would warn about it (others not so much). (#4775, #4464) f087a5b85 Metrics: Added a node showing windows in submission order and showing the Begin() stack. c5db27652 InputText, Nav: fixed tabbing through InputTextMultiline(). (#4761, #3092) 9d704d99d Internals: wrapped ImQsort() in an inline function + added a define guard. 66f0fb986 Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761) 5ccb66794 Backends: WebGPU: Passing explicit buffer sizes as validation layers appears to not do what the in-flux specs says. (#4766 cb5c73f64 Fix: IM_DEBUG_BREAK macro on ARM GCC (#4767) 65f4be1a1 InputText: Internals: moved "apply_new_text" application code to reduce noise in a future commit (will be for #4714) + removed unused fields. 5ac25e7c7 InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) 4d9a3b19d Internals: Implement a continuable IM_DEBUG_BREAK on GCC for common archs. (#2673) 764f9e606 Fixed crash on right-click without modal, introduced by previous commit a3667f46, (#4729) a3667f462 Fixed tooltip in own viewport over modal from being incorrectly dimmed. (#4729) 3fde445b9 Misc: Added missing ImGuiMouseCursor_NotAllowed cursor for software rendering (when io.MouseDrawCursor is enabled). (#4713) d80a9123b Internals: move chunks of IsItemHovered() so upcoming commit can be less noisy. This commit should be a no-op (check by comparing without white-space changes) 2c29e391d Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceAllowNullID doesn't lose tooltip when scrolling. (#143) f8a806ad9 Tooltips, Internal: (Breaking) swapped parameter order to accomodate for future tooltip api rework. 7cd3cfa58 Demo: Add IMGUI_DEMO_MARKER (currently unused, but usage by altering GImGuiDemoMarkerCallback) (#3689) cad790d43 Nav: fixed backwrap tabbing wrap on sibling child windows with _NavFlattened flag. (#4449) e790fc0e7 Nav: prevent child from clipping items when using _NavFlattened and parent has a pending nav request. (#787) a9ea1ae85 Nav: fixing assert using Tab in a window without any tabbable element (#4449) eb02dcf87 Nav: enable move/resize window with keyboard in Ctrl+Tabbing windowing menu even without _NavEnableKeyboard. (#4023, #787). 8ce23b3cc Nav: Ctrl+tabbing to cycle through windows is now enabled regardless of _NavEnableKeyboard. (#4023, #767) bce1ba400 Clipper: add ForceDisplayRangeByIndices (#3841, #3578) ebac37579 Docs: added info about Freetype, editing sponsors. 1a7526dcd Nav, Tabbing: refactor tabbing system to support clipped items, scrolling, using nav queries. (#4449) f01a6d3e8 InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682) 32779c5b6 Clipper: hotfix (amend 93cccd2, was broken) (#3841, #1725) 64daeddf6 Removed CalcListClipping() function. (#3841) 6a7e2c74f Clipper: remove ForceDisplayRangeByIndices/ForceDisplayRangeByPositions functions until we find a need for them, since #3841 is now solved automatically. 93cccd27f Clipper: bunch of rework. (#3841, #1725) cd1b5f788 Clipper: enhanced ImGuiListClipper (#3841) b409df34d Clipper: Fixed content height declaration slightly mismatching the one of when not using a clipper. 14466a6d1 Nav: Page/Home/End doesn't immediately restore highlight (before results comes) + pressing Esc to exit a child window re-enable the Nav highlight if it was disabled by mouse. 978598b17 Nav: pressing PageUp/PageDown/Home/End when in Menu layer automatically moves back to Main layer. + fixed resizing window from borders setting navigation to Menu layer. d1eb7b575 ScrollToItem: amend fully visible tests to take account of spacing used (fix nav in one axis scrolling back and forth between axises when space is tight by just < ItemSpacing*2) (#3692, #2812, #4242, #2900) eb654f1ba Typo b1a68d899 Fix misplaced backtick in FAQ.md (#4669) a67f7dce3 Nav: relative rectangle positions are now stored relative to CursorStartPos to be independent of scrolling. Will facilitate rework of clipper (#3841) 8d361c47f Nav: rework NavEnableSetMousePos application so scrolling is applied more consistently in NavCalcPreferredRefPos() + moved at end of NavUpdate() after the last SetScroll have been done. 8361ed1f5 Nav: wrap abs<>rel rectangle conversions before we attempt to switch the reference point from window->Pos to window->DC.CursorStartPos. This commit should have no effect. 19c72cd52 Nav: fixed absolute mouse position (with NavEnableSetMousePos config flag) when using Home/End leads to scrolling. c363b6df2 Modals: fixed issue hovering popups inside a child inside a modal. Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676)(#4676, #4527) 0f2898ea8 Demo: Tree selection demo use !IsItemToggledOpen() (#1896) + update FAQ (#4366) 99552420a InputText: triple-click avoid scroll + include end of line character. (#2244) 126a6f894 InputText: made double-click select word, triple-line select line. Word delimitation logic differs slightly from the one used by CTRL+arrows. (#2244) 9c78fc928 Inputs: Mouse: Amend c8e3a01 for tracking multiple clicks, renaming. (#3229) 2318c764c Inputs: Mouse: Add support for tracking multiple clicks more than just double (#3229) 39b99072f ImVector: fix Clang warning (implicit conversion changes signedness: 'const ptrdiff_t' (aka 'const long long') to 'unsigned long long') ad3f54ff1 Examples: Emscripten comments (#4650, #4662), standardize readme 19c3773cc Backends: Vulkan: Call vkCmdSetScissor() with a full-viewport at end of render. (#4644) bbd5119a2 Backends: Vulkan: comments about user using VK_DYNAMIC_STATE_VIEWPORT / VK_DYNAMIC_STATE_SCISSOR and not calling vkCmdSetViewport() / vkCmdSetScissor(). (#4644) e3bd9434b 1.86 WIP + internals: tweaks table temp data code. 13cdf2ff0 CI: Add MinGW DLL builds, be03b8ff9 Misc: Fix build with MinGW when using IMGUI_API. 55d35d838 Version 1.85 75c54e638 Nav: Fixed vertical scoring offset when wrapping on Y in a decorated window. ba5c105c0 Menus: Fixed an assertion happening in some situations when closing nested menus (broken in 1.83). (#4640) 44f801186 SetItemDefaultFocus() use ScrollToRectEx(), don't tab when Alt is held either, TabItemEx() uses ItemAdd's extra_flags, misc comments. ec6ca0689 InputText: Fixed selection rectangle appearing one frame late when selecting all. dde31030e Backends: SDL_Renderer: use SDL_RenderIsClipEnabled() to pass NULL to SDL_RenderSetClipRect (#3926, #4582, #4633) 30a6873a4 Backends: WebGPU: Fix missing initialization of local variable (#4634) 31d033c9d Nav: refactor SetKeyboardFocusHere() into using Nav facility. Fix it for clipped items. (#343, #4079, #2352, #432) fbe78b1a3 Stack Tool: Docs (#4631) + also prevent Metrics window from displaying twice. 25332fa5a Backends: Emscripten: Update the webgpu API to be compatible with chrome 4633 (#4512) 2de96c4bd Stack Tool: Added Stack Tool (ShowStackToolWindow() function and available from Demo and Metrics window). (#4631) e443ea139 Backends: SDL_Renderer: Backup and restore modified ClipRect/Viewport. (#3926, #4582) 30db67414 Fix printf format warnings on mingw clang (#4626, #4183, #3592) 164a86d3b Moved !IsActiveIdUsingKey(ImGuiKey_Tab) check to UpdateTabFocus(). Added asserts to IsItemHovered() and IsWindowHovered(). 677fe3399 Backends: DX12: use dxgiformat.h to fix using forward declared DXGI_FORMAT (#4594) 8f495e554 Internal: added ScrollToItem() upcoming replacement to ScrollToBringRectIntoView() + ImGuiScrollFlags (WIP) (#3692, #3208, #2812, #4242, #2900) fc4988ffb Added ImGuiFocusedFlags_NoPopupHierarchy and ImGuiHoveredFlags_NoPopupHierarchy (followup #4527) 24a77824f Added ClosePopupsExceptModals() helper, unused for now (aimed at user being able to close popups on app focus loss, not necessarily a suitable default) bbb95a5e0 IO: modify io.AddFocusEvent() to tolerate in/out for multi-viewports. Amend 2f40be6. (merged from docking) (#3532) fba756176 Backends: SDL_Renderer: Amend 1d2d246, various tweaks, fixes, sync to latest. (#3926) 62b17f928 Backends: SDL_Renderer: Added renderer backend for SDL 2.0.17+ (#3926) d7260104b Added comments about sliders clamping and ImGuiSliderFlags_AlwaysClamp (#4573) 15fe7ba31 ColorPicker: Fix not being able to pick exactly (1.0f, 1.0f, 1.0f) color by dragging toward the edges of the SV square. (#3517) 30546bc0e ColorEdit: Fix multiple issues. (#4014) 15132217a Nav: Fixed an issue with losing focus on docked windows when pressing Alt while keyboard navigation is disabled. (#4547, #4439) bc3d267c5 Backends: OSX: Use mach_absolute_time as CFAbsoluteTimeGetCurrent can jump backwards. (#4557, #4563) c6ca327fb Backends: Added more implicit asserts to detect invalid/redundant calls to Shutdown functions. (#4562) ddddabdcc InputText: amend validation test to allow pushing Activate events remotely. (#4552, #2321) 2cffcbdc6 InputText: fix Space key with nav enabled interfering with input text boxes (fix bd6c9e99). made it possible to activate InputText with tweak gamepad button (why not, now that we can cancel) (#4552, #2321) 3973de793 Internals: removed last parameter to IsClippedEx() + fix PVS studio warnings. 2d0a6a496 Misc: moved StacSizeOnBegin out of window instance into window stack data. 66cd21db8 Misc: extracted ErrorCheckEndWindowRecover() out of ErrorCheckEndFrameRecover(). (#1651) d36669406 Disabled: Added assert guard for mismatching BeginDisabled()/EndDisabled() blocks. (#211) + Added asserts for missing PopItemFlag() calls. Added both to ErrorCheckEndFrameRecover (#1651) 4f10fe0a2 TreePush: removed arbitrary/weird suppot for TreePush((const char*)NULL) 7b8bc864e Menus: Fixed vertical alignments of MenuItem() calls within a menu bar. (broken by f8fae022). (#4538) 82754561e Nav: Fixed a few widgets from not setting reference keyboard/gamepad navigation ID when activated with mouse. 17a7084b5 Menus: Fixed crash when navigating left inside a child window inside a sub-menu. (#4510). 321b84f01 Internals: refactored IsWindowHovered()/IsWindowFocused() to make their logic more similar + change underlying value of ImGuiHoveredFlags_AllowWhenBlockedByPopup + comment out docking only flags. d9b427cce Nav: clarified/renamed NavInputId as NavAcivateInputId, added flags shared by both. 755bf985d Backends: OpenGL3: Made our custom GL loader a bit more tolerant of use of another loader in same compilation unit. (#4445, #4514) 607ad8c94 Drag and Drop: Fixed using BeginDragDropSource() within a Begin()/BeginChild() that returned false. (#4515) + BeginDragDropTarget() bd6c9e99f InputText: Allow cancelling/validating input with gamepad nav events. 0a154b30a Nav, ButtonBehavior: reworked old code which ended up 1) calling SetActiveId repeately and 2) misleadingly set g.NavActivateId (amend af38749e) ade4c15ee Nav: Tidying up, renaming + update AnyRequest flag in NavMoveRequestSubmit(). 528104a89 Menus: adjust closing logic to accomodate for varying font size and dpi + remove seemingly redundant use of g.NavActivateId where pressed was enough. 5ee40c8d3 Nav: always disable highlight if nav is disabled, fix for IMGUI_DEBUG_NAV_SCORING, minor renaming. dff15acdb Nav: Fixed toggling menu layer with Alt exiting menu layer with Esc not moving mouse when NavEnableSetMousePos config flag is set. 3d9d3b49a Internals: folded ImGuiItemAddFlags into ImGuiItemFlags. ImGuiItemAddFlags_Focusable > ImGuiItemFlags_Inputable. One step in the big nav/tab/focus rework. 73a5e82e0 Nav: removed parameters from NavScoreItem(), NavProcessItem(), NavApplyItemToResult(): made little sense / misleading because pulling from other current state anyway. a735a8c08 Nav: storing NavRect in LastItemData. Fix race condition where framed items (Rect != NavRect) calling SetFocusID() would store the wrong NavRectRel until next frame ee351d354 Nav: move code into NavMoveRequestSubmit(). NavApplyItemToResult() takes absolute rect., comments 7b913db1c Nav: split NavMoveRequest into NavMoveSubmitted + NavMoveScoringItems to allow operation to defer a move request and provide result immediately + fix regular scoring needlesly running during init + some renaming. eb6c16d3d PlotHistogram: Fixed zero-line position when manually specifying min<0 and max>0. (#4349) 03ce17f0a Backends: Allegro: Fixed clipping rectangles (#4498) broken by 2b0bd40b (#4464) 7c4ffe490 Menus: added internal's BeginMenuEx() matching MenuItemEx() with icon parameter. (amend f8fae022) 4aea1c5ad IO: added io.WantCaptureMouseAllowPopupClose (#4480) + comments 66102880a Updated links to Discussions 333807b48 Windows: fixed background order of overlapping childs submitted sequentially. (#4493) 11103f825 Examples: SDL+OpenGL3: fixed build on ES2 target. (#4492) bb6a60b1f Nav: extracted sections of NavUpdate() into a NavUpdateCreateMoveRequest() function. Only clearing results when a request is activated. ccfb20095 Nav: small refactor of forwarding, clarified that MoveDir only set when RequestActive, removed one indent level in NavUpdatePageUpPageDown(). 4351febe9 Nav: moved enums/struct declarations in imgui_internal.h 20a1edef8 Nav: made EndMenuBar() use NavMoveRequestForward() for consistency. Moved forward clearing to NavMoveRequestApplyResult(). Improved/fixed comments. b08ed6190 CI: Build with empty IM_ASSERT() macro. 84890a307 Nav: simplify wrap requests code (may soon be useable for tabbing) 4c31c98d2 Nav: extracted code out of NavUpdate() into NavUpdateCancelRequest() 80ed4eba8 Backends: Vulkan: non-dispatchable handles should compare to VK_NULL_HANDLE, not NULL (#4475) 780c1ee26 TextUnformatted: Accept null ranges including (NULL,NULL) without asserting. (#3615) 2b0bd40b9 Backends: Metal: Fixed a crash when clipping rect larger than framebuffer is submitted. (#4464) f8bad7e1e Backends: OpenGL3: Add TargetConditionals.h (#4473) + standardize include 4a7c21d33 Fonts: Fixed ImFontAtlas::ClearInputData() marking atlas as not built. (#4455, #3487) e65252731 Backends: WebGPU: Update impl_wgpu for an emscripten change 51d841dcf Fix warnings and remove IM_RETURN (#4470) 4c22b3e5d Backends: OpenGL3: Fix gl3wProcs colliding with gl3w. (#4445) 0608887fb InputTextMultiline: Fixed label size not being included into window contents rect unless the whole widget is clipped. 68f428b44 imgui_freetype: Fixed crash when FT_Render_Glyph() returns NULL (which apparently happens with Freetype 2.11). (#4394, #4145 ?) 6afe9bbb4 Projects: added GLFW Vulkan to default solution. e23bee353 Removed GetWindowContentRegionWidth() function 0649f750b Version 1.85 WIP git-subtree-dir: ext/imgui git-subtree-split: c71a50deb5ddf1ea386b91e60fa2e4a26d080074
9aae45eb4 Version 1.88 d51e5d289 TabItem: revert support for SetNextItemOpen(true) at it creates too much ambiguity with p_open/close button vs Selected state. (#5262) c4b910175 TabBar: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their initial width more precisely. 4b9729614 TabBar: TabItem() now reacts to SetNextItemWidth() and SetNextItemOpen(true). (#5262) d3fd2630b Sliders: An initial click within the knob/grab doesn't shift its position. (#1946, #5328) + Adjust default GrabMinSize. f27af1b20 Internals: SliderBehaviorT: Minor refactor, clearer 0.0/1.0 early out. Should be no-op from user's point of view. 90e8404a7 Update README.md 37a07858a Nav: Fixed inability to cancel nav in modal popups. (#5400) 07efd7cc2 Renamed IMGUI_DISABLE_METRICS_WINDOW to IMGUI_DISABLE_DEBUG_TOOLS. 08572189f MovingWindow auto-cancelled if active id is stolen (instead of ill-defined bahavior + assert in docking). 27343efb0 Nav, Focus: Changed SetKeyboardFocusHere() to not behave if a drag or window moving is in progress + move KeepAliveID() call from Scrollbar() to ScrollbarEx() ddcff1034 Settings: Fixed some SetNextWindowPos/SetNextWindowSize API calls not marking settings as dirty. 6cac48df3 Drag, Slider: rework slightly or CTRL+Click or SetKeyboardFocusHere() will show 1 change of active id in the log (rather than a set,clear,set sequence) dd2850083 Debug: Add more log. Reworked IMGUI_DEBUG_PRINT IMGUI_DEBUG_PRINTF. Added internal IsDragDropActive() helper. 2ed9e21eb Nav, Internals: wrap changes to g.NavWindow into a helper function to help track/log changes. 1d6e34f3f Debug: Added ShowDebugLogWindow(). ec2c805e4 Backends: support for unity builds for dx10/dx11/dx12 backends (#5387) 076d8fc86 Nav: Fixed issues with nav request being transferred to another window when calling SetKeyboardFocusHere() and simultaneous changing window focus. (#4449) 0b1bcfcc2 Menus: Separate menu sets by nav layer. (#3496, #4797) + Demo: Remove incorrect and useless suggestion to use PushID(). a35e87697 InputText: Amends and tidying up: Fixed undo/redo state corruption when editing buffer in user callback. (#4947, #4949) 530332dfb InputText: Fixed undo/redo state corruption when editing buffer in user callback. (#4947, #4949) 23a785aeb Internals: wrapped used of g.TempBuffer into ImFormatStringToTempBuffer/ImFormatStringToTempBufferV helpers. 64d6c3056 InputText: Fixed an undo-state corruption issue when editing buffer before reactivating item. (#4947) + Metrics: Added "InputText" section. 74f02703e Misc comments + Demo: use IsItemVisible() when using direct ImDrawList calls. 65c4c0a49 IO: Added SetAppAcceptingEvents() function (#4921, #4858) 17b8c3b6e Demo: Removed redundant window flag (#5367) 7354009a7 Backends: Metal: Fixed null dereference inside command buffer completion handler. (#5363, #5365) 74f7ac04a Misc: Fix font compressor utility warnings. (#5359) f58bd817e Tables: Fix drawcall merging of last column. (#4843, #4844) e23c5edd5 Settings: Fixed out-of-bounds read when .ini file on disk is empty. (#5351) 697ce2d67 InputText: Fixed a one-frame display glitch where pressing Escape to revert after a deletion would lead to small garbage being displayed for one frame. (#3008) 5139fb7e1 Docs: Add index ae2fb557f Docs: Update templates with link to Contributing guidelines. Add numerical version number in demo. Moved. (#5337) 814ecedd1 Docs: creates CONTRIBUTING.md (#5337) e5b2286ca Backends: OpenGL3: Fix apple TARGET_OS_* not defined warning. (#5321) ca222d30c Backends: OpenGL: Partially revert 1.86 change of using glBufferSubData(): now only done on Intel GPUs. (#4468, #3381, #2981, #4825, #4832, #5127) 7bf07d252 Renamed CaptureMouseFromApp() and CaptureKeyboardFromApp() to SetNextFrameWantCaptureMouse() and SetNextFrameWantCaptureKeyboard(). Added demo. (#5304, #4831, #4480, #533) cb56b0b23 Removed leftover KeepAliveID() call in GetIDWithSeed() variant. (#5181) + doc tweaks. e346059ee IO: Fixed input queue trickling of mouse wheel events. (#4921, #4821) 60bea052a Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states. (amends) b7686a88e Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states. 507a87354 DrawList: Circles disappear when using a radius < 0.5f (#3491) 9e0517a13 DrawList: Fixed divide-by-zero or glitches with Radius/Rounding values close to zero. (#5249, #5293, #3491) 9779cc2fe Internals: shallow changes to simplify diff of upcoming commits. Should have no side-effect. 4db55f88e Changed FONT.md edit to blob (#5290) d768b8c81 Backends: Metal: Align code more closely with other backends. OSX: Add missing return for mouse pos events. 55f898939 Docs update, binaries link + Backend: Allegro: fix warning (#5281) 6d27fecce Debug: added DebugTextEncoding() to help diagnose between text encoding issues and font loading issues. Simplified code + extracted DebugNodeFontGlyph(). e66889083 Debug: added encoding viewer in Metrics. e66fc2205 Backends: OSX: Removed ImGui_ImplOSX_HandleEvent() from backend API. Move event tracking (desktop only) to OSX backend. (#4821) 26f817807 Backends: Vulkan: Don't use VK_PRESENT_MODE_MAX_ENUM_KHR as specs state it isn't part of the API. (#5254) d58b8414b Backends: OSX, Metal: Tweaks. Use preferred method of obtaining a timestamp. (#4821) 3e5dde9a2 Tables: Fixed incorrect auto-fit of parent windows when using non-resizable weighted columns. (#5276) 709bc03d6 Backends: GLFW: fixed ImGui_ImplGlfw_TranslateUntranslatedKey() for lower case letters on OSX (#5260, #5261) 314c7bd12 Internals: renamed ImGuiInputReadMode to ImGuiNavReadMode (internals) to avoid ambiguity with upcoming flags. + minor tweak e54db4ee7 Backends: OSX, Metal: Store backend data in a per-context struct, allowing to use these backends with multiple contexts. (#5203, #5221, #4141) 04689979b Examples: Emscripten+WebGPU: Fix for latest spec rename of WGPURenderPassColorAttachment::clearColor to ::clearValue (#3632) b5b704d37 Windows: Fixed first-time windows appearing in negative coordinates. (#5215, #3414) 5b29d1478 Layout: Fixed mixing up SameLine() and SetCursorPos() together. SameLine() is a stateful. eda7792b1 Internals: swapped blocks in TextEx() to make it easier to step through common cases. Tweak demo. 28b2089ee Internals: moved ItemSize() variant to inline + comment. + Tidying up todo list (#5191) 14ca75d4e Backends: SDL, OpenGL3: Small fixes for AmigaOS4. (#5190) + Allow redefining IM_COL32_XXX layout macros. (#5190, #767, #844) 088487a3d Nav: Fixed nav movement in a scope with only one disabled item from focusing the disabled item. (#5189) fc203c7d7 Minor fix to sastisfy PVS-Studio warning. (amend, 3nd attempt: this is a false positive from PVS studio) 6d15a506f Internals: removed GetIDNoKeepAlive() now that it is the same as GetID(). (#5181) 90386780e Misc: Fixed calling GetID("label") _before_ a widget emitting this item inside a group (such as InputInt()) from causing an assertion when closing the group. (#5181). 937d07332 Updated comment about Edit.NavigateTo to Edit.GoToAll. (#5179) f7f30476d Added comments about requirement for bilinear filtering. (#5156, #3245) + Backends: SDL_Renderer: Explicitely call SDL_SetTextureScaleMode(). (#4927) 2c03aac6d Renamed ImGuiKeyModFlags to ImGuiModFlags (Breaking but technically never advertised type) a472e8834 InputScalar: Automatically allow hexadecimal/scientific input when format is adequate. c521883be Sliders, Drags: Fixed manual input when using hexadecimal display format string. (#5165, #3133) 508c9aaf6 Sliders, Drags: Fixed using hexadecimal display format strings (pretty much never worked). (#5165, #3133) f5c5926fb Internals: remove obsolete variants of RenderArrow(), RenderBullet(), ImHash() + misc comments. 88fbc31ee stb_truetype: fix a division by zero (unused chain of result, but triggering debuggers). (#5139, #5075) 2747a8ca4 Turned ImVec2 to const ref to RenderChar(), RenderText(), ColorButton(), PushClipRect(). for consistency. Comments about polygon filling winding order. 0dec43070 Menus: Adjusted BeginMenu() closing logic so hovering void or non-MenuItem() in parent window always lead to menu closure. 2d76b09d2 Backends: Metal: Conditional check, amend 7602277 (#5122, #5123) 1ba290501 Update README, quote, mission statement 3587ee492 Viewports: store Viewport field in ImGuiWindow to facilitate using code accross branches + fix PVS warnings. dfbe938e5 InputText: Fixed pressing Tab emitting two tabs characters. (#2467, #1336) 16ddc1698 Fixed creating multiple-context (regression in 28ba54a). (#5135) 1ad8ad623 Backends: GLFW: Fixed keyboard modifiers events being reported incorrectly on Linux/X11. 7d7bf993b ImDrawList: Fix texture-based anti-aliasing with RGBA textures (#5132, #3245) 3c0787950 Backends: OSX: Inputs: Monitor NSKeyUp events to catch missing keyUp for key when user press Cmd + key (#5128) c5f67218b Backends: SDL: Fix multi-viewport dragging issue with SDL on some systems. (v2 for master, using bd->MouseButtonsDown == 0) (#5012, #5082) 7602277c8 Backends: Metal: Remove weak ref (#5122, #5123) 31e77eacd Backends: SDL: Add extra mouse buttons handling (#5125) 6fae29679 Examples: Emscripten: Fix build. (#3632) 28ba54a32 Internals: add AddSettingsHandler(), RemoveSettingsHandler(). fd06ed833 Misc: tweaks + fix warnings on backends withtout -wno-memaccess (#4995, #5104) 0cff5ac5a Updated stb_textedit.h from 1.20 to 1.26 (many fixes). (#5075) de451d447 Updated stb_textedit.h from 1.13 to 1.14. (#5075) 279db5584 Updated stb_rect_pack.h from 1.00 to 1.01. (#5075) 3deb92c2c Add IMGUI_STB_SPRINTF_FILENAME to support custom stb_printf.h include path (#5068, #2954) 0f1493357 Tables: Fixed incorrect border height used for logic when resizing one of several synchronized instance of a same table ID, when instances have a different height. (#3955, #3565) 6315716f2 Backends: Glut: Fix comparison operator precedence. 1e18da5c3 Backends, Examples: Add comments about using WndProc handler and WantCaptureXXX flags. (#5061) 54fb051e5 ColorEdit: Fixed text baseline alignment after a SameLine() after a ColorEdit() with visible label. fa2b318dd IO: Fixed input queue trickling of interleaved keys/chars events when InputText() is not active. (#4921, #4858) 5659db552 IO: Fixed backward-compatibility accesses to io.KeysDown[]. (#4921, #4858) a61ca097a Backends: OSX: Fix typo in scrolling event handler. (#5036) dca527be1 Clipper: Assert on extraneous calls to Step(). (#4822) + Demo tweak. 29d462ebc Set HoveredID even when g.NavDisableMouseHover is set by gamepad/keyboard navigation. This will facilitate the use of future InputOwner API based on HoveredID/ActiveID. 421e73e6d Fix an assert in metrics. d9e60d29e Clipper: Fixed a regresssion when not calling End() + calling End() twice as well. (#4822) 5c8f8d031 ImVector: Fixed erase() with empty range. (#5009) amend/fix b6b8f66 2dfa71fad Inputs: Fixed IsMouseClicked() repeat mode rate being half of keyboard repeat rate. Using KeyModAlt. Removed KeyModsPrev. 7ff41a78f Fonts: binary_to_compressed_c.cpp gained -nostatic option (#5021) 8d3906365 CI: Fixes for OSX + explicitely request C++11. b6b8f6634 ImVector: Fixed erase() with empty range. (#5009) 5854da10e Declare other structures as constexpr (#4995) + rename ImGuiInputEventType_Char to ImGuiInputEventType_Text for consistency with event structure. 71f98dd05 Declare ImVec2 and ImVec4 constructors as constexpr (#4995) 955aacfbc GCC: Disable deprecated-enum-enum-conversion for gcc as well (#4997) 4691fa0ed ImDrawList: PthArcTo: Add small tolerance when comparing angles (#4993) aa79d0cd2 Stack Tool: Added option to copy item path to clipboard. (#4631) 88de98207 Version 1.88 WIP 97b1abd6d Internals: rework RenderMouseCursor() signature so we can use it in docking branch more naturally. c71a50deb Version 1.87 e52bb147a Backends: GLFW: Added ImGui_ImplGlfw_InstallCallbacks()/ImGui_ImplGlfw_RestoreCallbacks(). (#4981) 732bc2058 Backends: GLFW: Handle spurious leave/enter sequences apparently submitted by X11/GLFW combo. (#4984) 40fd163a3 Backends: OpenGL3: Fix OpenGL ES2 includes on Apple systems. 2554b512c Backends: OSX: Forward keyDown/keyUp events to OS when unused by Dear ImGui. c6cab1f35 Backends: SDL: Added SDL_Renderer* parameter to ImGui_ImplSDL2_InitForSDLRenderer(). Use SDL_GetRendererOutputSize() instead of SDL_GL_GetDrawableSize() when bound to a SDL_Renderer. (#4927) c39192ba6 Backends: SDL_Renderer: Fix texture atlas format on big-endian hardware (#4927) 43177324c Backends: GLFW: Fixed miss untranslation of keypad keys. (#4921, #452) 6f73dbea8 TestEngine: submit window data to item system. 35e197f41 TestEngine: fixed InvisibleButton() and ArrowButton() not calling the info macro. 551ab84c2 Backends: OSX: Fix building with old Xcode versions. 422902dbd Correct typos (#4954, #4955), use IM_STATIC_ASSERT now that old pre-C++11 macro has been obsoleted. 64d910ad3 Removed IMGUI_API from inline templated classes. (#4962) 49e38a5b3 Revert moving ImGuiKeyModFlags to internal.h (amendc906c65) 9def2b04d IO: Added simple (incomplete) filter for duplicates to reduce data spam. (#4921, #4858) 5429f0f6b Backends: OSX, Android: Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. (#4921, #4858) c906c65ca (BREAKING) Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. Backends: update most. (#4921, #4858) 718daa153 Rendering: defer responsability of calling _PopUnusedDrawCmd() later so RenderDimmedBackgrounds()/RenderMouseCursor() don't need to deal with the side-effects (#4857, #4317) 075f4ac66 Don't merge ImDrawCmd which have had their IdxOffset changed to not be sequential. Fixed CTRL+Tab into an empty window causing artefacts on the highlight rectangle due to bad reordering on ImDrawCmd. 855533593 Shallow alignment of ImGuiKey stuff + moving some in internals. Internals: add offset to ImBitArray<>, simpify ActiveIdUsingKeyInputMask. 08f3aa897 Popups: Fix b17b2fb (#4936) 4caf1e9b5 Backends: GLFW: fix ImGui_ImplGlfw_TranslateUntranslatedKey() for grave accents. (#456, #2625) + fix preceeding commit. b17b2fb73 Popups: Fixed an issue when reopening a same popup multiple times would offset them by 1 pixel on the right. (#4936) cda3db144 Backends: SDL: Fixed key mapping for ImGuiKey_Menu (#4921) + misc typos (#4928) dd6a44abb Fix compiler warning for Intel compiler (#4934) 4fb0c1f96 Correct some typos in FAQ.md (#4924) cff034245 Internals: moved lines into a Inputs section. c2db4c246 Demo: draw a section of keyboard in "Inputs > Keyboard, Gamepad & Navigation state" to visualize keys. 69b697378 Comments, tweaks. 26e59c874 Nav: Fixed gamepad navigation in wrapping popups not wrapping all the way. (#4365) 62d6be374 IO: Removed ImGuiInputSource from public api for now, unnecessary. (#4858, #787) 5ea47d956 Backends: OSX: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 39c3412f9 Backends: SDL: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 3d8543374 Backends: GLFW: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 9f8c599ca Backends: Win32: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) f33bb9982 IO: added AddKeyAnalogEvent() and support for ImGuiKey_GamepadXXXX. (#4858, #787) 6e63fcaca Backends: Vulkan: Amends, fix miscast on 32-bit systems with the right ImTextureID=ImU64. (#914) ceb26bac4 Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, amends. (#914) 29f104319 Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, add ImGui_ImplVulkan_AddTexture(). (#914) 19471da3f Popups: Fix a crash when a new window is created after a modal on the same frame. (#4920) 7ad42ff43 IO: renamed io.ConfigInputEventQueue to io.ConfigInputTrickleEventQueue. (#4858) 26d04c948 Tables: Fixed positioning of Sort icon on right-most column with some settings (not resizable + no borders). (#4918). 97b1ffcb3 IO: Reorder enums, compact a little in header. Removed const from internal GetKeyData(). 91ae56af4 Removed support for legacy arithmetic operators (+*/) when inputing text into a slider/drag. (#4917, #3184) 673f5e588 IO: moved fields to put more focus on the new functions + update misc docs/references + update main.mm in Apple+Metal example (#4858) 90a696163 IO: apply same flooring as UpdateMouseInputs() in dupe event processing. (#4858) + provision for test engine. 7374b96f5 IO: Added input queue. (#4858, #2787, #1992, #3383, #2525, #1320) b8e56dce8 IO: Added AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() api + updated all Backends. (#4858) (input queue code will be next commit) b6582a471 Backends: OSX: Fix Game Controller nav mapping to use shoulder for both focusing and tweak speed. (#4759) 92c4ff1c2 Rename ImGuiKey_LeftControl to ImGuiKey_LeftCtrl, ImGuiKey_RightControl to ImGuiKey_RightCtrl + made key order match mods order. (#4858) 075576744 Backends: move io.AddKeyModsEvent() next to io.AddKeyEvent() submission, rely on mods from platform/source. (#4858) + fix #2622 again broken by 746c9f7 eb823655a Removed support for pre-C++11 compilers. We'll stop supporting VS2010. (#4537) f84c93d83 Update BACKENDS.md (#4909) 45c4365ec Backends: GLFW: glfwGetKeyName is not implemented in emscripten (#4907, #4858) 6188e9410 Examples: Vulkan: fill Subpass and MSAASamples to increase discoverability (#4886) + IO docs update (#4858) 553b04883 Backends: SDL: Fix for Emscriptem. Amend 98ce013. 955163568 IO: fix SetKeyEventNativeData() not handling ImGuiKey_None the same way as AddKeyEvent(). (#4905, #4858) 200a8f1ea Backends: GLFW: Update mouse inputs using glfwSetCursorPosCallback() (breaking) + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons. 98ce01324 Backends: SDL: Update mouse inputs using SDL_MOUSEMOTION/SDL_WINDOWEVENT_LEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons. bf4de2a46 Backends: Win32: Update mouse inputs using WM_MOUSEMOVE/WM_MOUSELEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before Key Modifiers. 7f8a89c25 Backends: Win32, SDL: maintain MouseButtonsDown instead of using IsAnyMouseDown(). Internals: added GetInputSourceName(). 457d4b7b7 Backends: OSX: Adedd basic IME support for macOS. (#3108, #2598) 290c51735 Fixed warning in ImFloorSigned(). (#4889) 0818a4239 Backend: WebGPU: Fixed incorrect size parameters in WGPU backend (#4891) 96186a93b Typo correction in imgui_demo.cpp (#4892) 956e03009 Backends: OSX: Build fIx. Made GetKeyName() input tolerant. Internals: added GetNavInputName(). e8172fdfb Rename io.AddKeyModEvent() -> io.AddKeyModsEvent() and updated backends accordingly. (#2625, #4858) b2e2cc44c Backends: OSX: Fixed typo. 790132a67 Added io.AddKeyModEvent() and updated backends accordingly. (#2625, #4858) 1797135db Backends: Android: Update to use io.AddEventKey() will full key map (#2625, #4858) ee436aa80 Backends: OSX: Update to use io.AddEventKey() will full key map (#2625, #1873, #4858) da1864d79 Backends: GLUT: Update to use io.AddEventKey() will full key map (#2625, #4858) 1bfe4a75b Backends: Allegro5: Update to use io.AddEventKey() will full key map (#2625, #4858) fe646ea59 Backends: SDL2: Update to use io.AddEventKey() will full key map (#2625, #4858) + created localized key (using keycode instead of scancode) (#456) ecd212c01 Backends: GLFW: Update to use io.AddEventKey() will full key map (#2625, #4858) 746c9f76e Backends: Win32: Update to use io.AddEventKey() will full key map (#2625, #4858) bf08c13e9 Inputs: Extra Keys / AddKeyEvent(): bidirectional mapping, basic CI, simplify backends, asserts on misuses, tested backward compat. (#2625, #4858, #2787) 3b6692930 Inputs: Extra Keys / AddKeyEvent(): Added ImGuiKey values, io.AddKeyEvent(), GetKeyName(), IMGUI_DISABLE_OBSOLETE_KEYIO. Obsoleted GetKeyIndex(), io.KeyMap[], io.KeysDown[]. (#2625, #4858, #2787) afffcd581 Inputs: rename ImGuiKey_KeyPadEnter > ImGuiKey_KeypadEnter (#2625) 100ede576 Backends: GLFW: Fix CTRL+A, CTRL+Y, CTRL+Z to match keyboard layout. Converting GLFW untranslated keycodes back to translated keycodes. (#456, #2625) 4d023bd7f Fix for using IMGUI_DISABLE_OBSOLETE_FUNCTIONS de36ff043 Platform IME: add ImGuiPlatformImeData::InputLineHeight (unused by win32). (#3113) 29a8ee082 Platform IME: add ImGuiPlatformImeData::WantVisible, hide IME when not used. (#2589) 1cbfe9352 Platform IME: [windows] call ImmSetCandidateWindow() to position candidate window. 2706c9d66 Platform IME: reworked internals to simplify adding new features. 3a90dc389 Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API. 04bc0b0bb Fix IdxBuffer related comments. (#4845, #4863) 28eabcb09 Internals: refactor: mouse input functions into their own section. 206b9ead8 IO: removed unused MouseDragMaxDistanceAbs(). Using a shortcut variable in UpdateMouseInputs(). c5a3cae83 Reordered some IO fields. Misc comments. Removed beta marker from tables comments. efa50f72a Backends: Metal: Ignore ImDrawCmd where ElemCount == 0. (#4857) b0a6cd630 Fixed a situation where CTRL+Tab or Modal can occasionally lead to the creation of ImDrawCmd with zero triangles, (#4857) 2402958ae Commented out redirecting functions/enums names that were marked obsolete in 1.69, 1.70, 1.71, 1.72 92d7869fc Happy new year! 83d22f4e4 Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::AddCallback().(#4843, #4844) 41e39ea6e Backends: Metal: Add Metal C++ bindings support. (#4824, #4746) dbeea7220 Backends: Silence overzealous warnings. (#4834) Add comments about SetDragDropPayload() return value. (#4835) 89a28209e Version 1.87 WIP + Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init, added in 1.86 (#4468, #4830) 980deb4c9 Add missing include guard to avoid declaring ImFontAtlasGetBuilderForStbTruetype() function. 512c54bbc Version 1.86 612b787b0 Menus: fixed top-level menu from not consistently using style.PopupRounding. (#4788) 4bad852a7 Backends: SDL_Renderer: Handle change to SDL_RenderGeometryRaw() function signature in SDL 2.0.19 (#4819) 0636f9ada InputText: fixed Shift+Delete from not cutting into clipboard. (#4818, #1541) d9bc1e44a Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. (#368, #375) 0cdc4a956 Backends: Win32: Store left/right variants of Ctrl/Shift/Alt mods in KeysDown[] array. (#2625) 4a43dcb94 Internals: reduced side-effects of setting window->HiddenFramesForRenderOnly > 0 1c4066cd9 Internals: UpdateWindowInFocusOrderList: amend a528398 to fix docking. (#3496, #4797) 389982eb5 Backends: OpenGL3: Using buffer orphaning + glBufferSubData(), seems to fix leaks with multi-viewports with some Intel HD drivers.. (#4468, #4504, #2981, #3381) 48f263336 Menus: fixed closing a menu inside a popup/modal. Fixed menu inside a popup/modal not inhibiting hovering of items in the popup/modal. (#3496, #4797) a528398c7 Internals: support for varying _ChildWindow flag for menu windows. (#3496, #4797) 11638fdf7 Menus: reuse more menu windows when stacked over popups. 0e8c199e8 CI: Use regex to fix vcxproj platform and toolset versions. (#3249) Remove Discord integration. d7350668d Fix OSX warnings + Examples/Apple+GL2 calls super reshape. (#4759, #1873) 1b6b8602c Backends: OSX: Fix keyboard support. Handle scroll cancel. Don't set mouse cursor shape unconditionally. (#4759, #4253, #1873) f71ee5203 Fix infinite loop in ImFontGlyphRangesBuilder::AddRanges if the user passes upper range = UINT16_MAX without IMGUI_USE_WCHAR32. (#4802) b720f1f03 Backends: OSX: Add Game Controller support. (#4759) 8a9fe2686 Menus: fixed closing a menu by clicking on its menu-bar item when inside a popup. (#3496, #4797) c80179921 Added an assertion for the common user mistake of using "" as an identifier at the root level of a window. (#1414, #2562, #2807, #4008, #4158, #4375, #4548, #4657, #4796) a8e1dde35 Fix static analyser, update readme. e03383d08 Fixes for tooltip over modals leading to incorrect modal dimming. (#4729) bdd2a9431 InputTextMultiline: fixed vertical tracking with large values of FramePadding.y. (#3781, #4794) 072caa4a9 InputText: fixed incorrect padding when FrameBorder > 0. (#4794, #3781) 270d4d085 Nav, Docking: Fix crash on dimming docked window and DockSpaceOverViewport() with PassthruCentralNode. a19815dc6 Backends: Allegro5: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790) c80e8b964 Backends: OpenGL2, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790) b38af0f52 Popups: Fix popups being closed by newly appearing windows. (#4317) 657073a65 Nav, Docking: fix dimming crash with accessing zero-cmd ImDrawList (amend 1dc3af3, 23ef6c1) 20e040c85 Clipper, Tables: remove table specific code path should now be ok (added assert). 926addbfe Clipper: fixed invalid state when number of frozen table row is smaller than ItemCount. 027a7ba3e Clipper: use line size instead of cursor comparaison when range are large. (#3609, #3962 + ocornut/imgui_club#20) a76bc52da Window, Clipper: store initial precision loss and apply in clipper. (#3609, #3962 + ocornut/imgui_club#20) 6e141a9ca Internals: made ScrollbarEx() use ImS64 to facilitate use with larger ranges (not fully tested) + clipper tweaks (#3609, #3962 + ocornut/imgui_club#20) eea836135 InputText: fix buffer modifications in callbacks while using resize callback (#4784) aa41f1658 Separator: fixed cover all columns while called inside a table. (#4787, #205) 23ef6c149 Reworked modal/ctrl+tab dimming system to be entirely processed at end of the frame (backported 1dc3af3 from docking) da3a36eef Backport from docking branch: minor stuff. 78c6435db Inputs: (breaking wip) removed IsMouseTripleClicked() added recently (during 1.86 WIP), replaced with GetMouseClickedCount(). (#3229) 5c388c39f Backends: SDL_Renderer: Added support for large meshes (64k+ vertices) with 16-bit indices, enable 'ImGuiBackendFlags_RendererHasVtxOffset' in this backend. (#3926) 5b1a70aa2 Fixed RenderRectFilledWithHole() (used by docking) + added dummy EndFrameDrawDimmedBackgrounds() stub in master. 440824d43 Backends: Fixed early out on empty clip rect. In particular, DX12 backend would warn about it (others not so much). (#4775, #4464) f087a5b85 Metrics: Added a node showing windows in submission order and showing the Begin() stack. c5db27652 InputText, Nav: fixed tabbing through InputTextMultiline(). (#4761, #3092) 9d704d99d Internals: wrapped ImQsort() in an inline function + added a define guard. 66f0fb986 Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761) 5ccb66794 Backends: WebGPU: Passing explicit buffer sizes as validation layers appears to not do what the in-flux specs says. (#4766 cb5c73f64 Fix: IM_DEBUG_BREAK macro on ARM GCC (#4767) 65f4be1a1 InputText: Internals: moved "apply_new_text" application code to reduce noise in a future commit (will be for #4714) + removed unused fields. 5ac25e7c7 InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) 4d9a3b19d Internals: Implement a continuable IM_DEBUG_BREAK on GCC for common archs. (#2673) 764f9e606 Fixed crash on right-click without modal, introduced by previous commit a3667f46, (#4729) a3667f462 Fixed tooltip in own viewport over modal from being incorrectly dimmed. (#4729) 3fde445b9 Misc: Added missing ImGuiMouseCursor_NotAllowed cursor for software rendering (when io.MouseDrawCursor is enabled). (#4713) d80a9123b Internals: move chunks of IsItemHovered() so upcoming commit can be less noisy. This commit should be a no-op (check by comparing without white-space changes) 2c29e391d Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceAllowNullID doesn't lose tooltip when scrolling. (inkyblackness#143) f8a806ad9 Tooltips, Internal: (Breaking) swapped parameter order to accomodate for future tooltip api rework. 7cd3cfa58 Demo: Add IMGUI_DEMO_MARKER (currently unused, but usage by altering GImGuiDemoMarkerCallback) (#3689) cad790d43 Nav: fixed backwrap tabbing wrap on sibling child windows with _NavFlattened flag. (#4449) e790fc0e7 Nav: prevent child from clipping items when using _NavFlattened and parent has a pending nav request. (#787) a9ea1ae85 Nav: fixing assert using Tab in a window without any tabbable element (#4449) eb02dcf87 Nav: enable move/resize window with keyboard in Ctrl+Tabbing windowing menu even without _NavEnableKeyboard. (#4023, #787). 8ce23b3cc Nav: Ctrl+tabbing to cycle through windows is now enabled regardless of _NavEnableKeyboard. (#4023, #767) bce1ba400 Clipper: add ForceDisplayRangeByIndices (#3841, #3578) ebac37579 Docs: added info about Freetype, editing sponsors. 1a7526dcd Nav, Tabbing: refactor tabbing system to support clipped items, scrolling, using nav queries. (#4449) f01a6d3e8 InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682) 32779c5b6 Clipper: hotfix (amend 93cccd2, was broken) (#3841, #1725) 64daeddf6 Removed CalcListClipping() function. (#3841) 6a7e2c74f Clipper: remove ForceDisplayRangeByIndices/ForceDisplayRangeByPositions functions until we find a need for them, since #3841 is now solved automatically. 93cccd27f Clipper: bunch of rework. (#3841, #1725) cd1b5f788 Clipper: enhanced ImGuiListClipper (#3841) b409df34d Clipper: Fixed content height declaration slightly mismatching the one of when not using a clipper. 14466a6d1 Nav: Page/Home/End doesn't immediately restore highlight (before results comes) + pressing Esc to exit a child window re-enable the Nav highlight if it was disabled by mouse. 978598b17 Nav: pressing PageUp/PageDown/Home/End when in Menu layer automatically moves back to Main layer. + fixed resizing window from borders setting navigation to Menu layer. d1eb7b575 ScrollToItem: amend fully visible tests to take account of spacing used (fix nav in one axis scrolling back and forth between axises when space is tight by just < ItemSpacing*2) (#3692, #2812, #4242, #2900) eb654f1ba Typo b1a68d899 Fix misplaced backtick in FAQ.md (#4669) a67f7dce3 Nav: relative rectangle positions are now stored relative to CursorStartPos to be independent of scrolling. Will facilitate rework of clipper (#3841) 8d361c47f Nav: rework NavEnableSetMousePos application so scrolling is applied more consistently in NavCalcPreferredRefPos() + moved at end of NavUpdate() after the last SetScroll have been done. 8361ed1f5 Nav: wrap abs<>rel rectangle conversions before we attempt to switch the reference point from window->Pos to window->DC.CursorStartPos. This commit should have no effect. 19c72cd52 Nav: fixed absolute mouse position (with NavEnableSetMousePos config flag) when using Home/End leads to scrolling. c363b6df2 Modals: fixed issue hovering popups inside a child inside a modal. Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676)(#4676, #4527) 0f2898ea8 Demo: Tree selection demo use !IsItemToggledOpen() (#1896) + update FAQ (#4366) 99552420a InputText: triple-click avoid scroll + include end of line character. (#2244) 126a6f894 InputText: made double-click select word, triple-line select line. Word delimitation logic differs slightly from the one used by CTRL+arrows. (#2244) 9c78fc928 Inputs: Mouse: Amend c8e3a01 for tracking multiple clicks, renaming. (#3229) 2318c764c Inputs: Mouse: Add support for tracking multiple clicks more than just double (#3229) 39b99072f ImVector: fix Clang warning (implicit conversion changes signedness: 'const ptrdiff_t' (aka 'const long long') to 'unsigned long long') ad3f54ff1 Examples: Emscripten comments (#4650, #4662), standardize readme 19c3773cc Backends: Vulkan: Call vkCmdSetScissor() with a full-viewport at end of render. (#4644) bbd5119a2 Backends: Vulkan: comments about user using VK_DYNAMIC_STATE_VIEWPORT / VK_DYNAMIC_STATE_SCISSOR and not calling vkCmdSetViewport() / vkCmdSetScissor(). (#4644) e3bd9434b 1.86 WIP + internals: tweaks table temp data code. 13cdf2ff0 CI: Add MinGW DLL builds, be03b8ff9 Misc: Fix build with MinGW when using IMGUI_API. git-subtree-dir: dear-imgui git-subtree-split: 9aae45eb4a05a5a1f96be1ef37eb503a12ceb889
a8df192d Version 1.89.1 27c58c39 Scrolling, Focus, Combo: fixed SetKeyboardFocusHere()/SetItemDefaultFocus()/ScrollToRectEx() during an appearing form not centering item. (#5902, #2812, #4242, #2900) 233d7ad3 Backends: WebGPU: fixed validation error with default depth buffer settings. (#5869, #5914) 856c6314 Drag and Drop: fixed GetDragDropPayload() returning a non-NULL value before payload is submitted. (#5910, #143) ffe0abbf Internals: added basic localization system (#5895) c3d9f8ee Layout: fixed End()/EndChild() incorrectly asserting if users manipulates cursor position inside a collapsed/culled window and IMGUI_DISABLE_OBSOLETE_FUNCTIONS is enabled. (#5548, #5911) 3a685749 ColorEdit: fixed label overlapping when using style.ColorButtonPosition == ImGuiDir_Left. (#5912) 16476f99 Backends: GLFW: cancel out errors emitted by glfwGetKeyName() when a name is missing. (#5908) 5bb28749 Version 1.89.1 WIP 7bee9a8f Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code from accessing keys. (#5888, #4921, #456) d60985df Inputs: fix moving a window or drag and dropping from capture mods. (#5888, #4921, #456) 83cee9e0 InputText: replaced some uses of SetKeyOwner() + IsKeyPressed() with Shortcut() 81160fee Version 1.89 a582d92c Inputs: modulate wheel lock timer for small amount of wheeling. Slightly lower timer. (#3795) 03d3343e Docs: Update FAQ.md explaining how to enable hidpi for Windows app. (#5880) 00b63708 Backends: WebGPU: fixed rendering when a depth buffer is enabled. (#5869) 7380b981 Scrolling: Exposed SetNextWindowScroll() in public API. (#1526) cda26635 Inputs: refacotr/extract CalcRoutingScore() out of SetShortcutRouting(), easier to follow with early returns. b8b0f9d0 Backends: OpenGL3: Reverted use of glBufferSubData(). (#4468, #4504, #3381, #2981, #4825, #4832, #5127) f0ad8105 Inputs: tweak comments, typos. 637ddfce Inputs, Nav: made it possible to remap CTRL+Tab (#4828, #3255, #5641) 6c9c4879 Inputs: made Shortcut() routing id defaults to current FocusScope ID. (#456, #2637, #3724) d576724b Inputs: made ImGuiInputFlags_RouteFocused the default for Shortcut(). (#456, #2637, #3724) 4d6a9ef9 Inputs: added routing priorities. (#456, #2637, #3724) 7ff2d335 Inputs: added wip/experiment routing system: Shortcut(), RoutingFocused policy, SetShortcutRouting(). (#456, #2637, #3724) c59ebb2d Inputs: added basic Shortcut() function - no routing yet. (#456) 8c95c084 Inputs: changed specs of SetKeyOwner() to alter OwnerCurr immediately. 4448d975 Inputs: added wip/internal Input Owner system. (#456, #2637, #2620, #2891, #3370, #4828, #5108, #5242, #5641) 44d98bfd Fix build with IMGUI_DISABLE_DEBUG_TOOLS 529cba19 Debug Tools: Added DebugLocateItem()/DebugLocateItemOnHover() to visually locate items when hovering a 0xXXXXXXXX value. (#5855, #2673, #4631) 7109f32f Internals: tidying up and stripping more of focus scope code. 9f66a3a9 Internals: rework FocusScope system, current scope doesn't need to be in window + child doesn't inherit. 1eac0024 InputText: copy and select all shortcuts don't need repeat (tho it was harmless0 90e9465f Window: Fixed position not being clamped while auto-resizing (#5843) 6e9dfe1d Window: Auto-fit size takes account of work rectangle (menu bars eating from viewport). (#5843) 86f2af2b Backends: OSX: Fixed mouse coordinate before clicking on the host window. (#5842) c2694ef7 Examples: Android: Using LoadIniSettingsFromMemory() / SaveIniSettingsToMemory() to save in appropriate location for Android. (#5836) 22bcfca7 IO: Clear AppFocusLost in EndFrame() in order to allow backend or application code to poll and react to it a241dc79 IO: Fixed AddFocusEvent(false) to also clear MouseDown[] state. (#4921) a61bbdc2 Commented out redirecting OpenPopupContextItem() which was briefly the name of OpenPopupOnItemClick() from 1.77 to 1.79. 9db6b1a0 Backends: Win32: minor tidying up. (#5819) baea25e6 Drag and Drop: extracted a RenderDragDropTargetRect() function (#1603) 431fc6a7 Internals: using ItemAdd() consistently for internal items: windows & tables resize grips/borders, ScrollbarEx(). 178aee4b Debug Tools: Debug Log: add and use ImGuiTextLineIndex. 578df14f CI: Remove left-over discord stuff. f6bd7c8e Debug Tools: Item Picker: remove IMGUI_DEBUG_TOOL_ITEM_PICKER_EX since it doesn't work on non-ItemHoverable() items anyway. (#2673) bc918404 Internals: using ImToUpper() since std one does too many things. 9a35bfea Internals: added temporary ImGuiItemStatusFlags_Visible (used internally - please do not use). de1593d5 Backends: DX12: Fixed stale comments. (#5798) e3fa56ae BeginMenu(): Menus: Fixed a one-frame issue where SetNextWindowXXX data are not consumed by a BeginMenu(). 5ac94ad8 Window: Fixed an issue where uncollapsed a window would show a scrollbar for a frame. ab6e48b8 Backends: GLFW: Perform a dummy glfwGetError() read to cancel missing mouse cursors errors. (#5785) 08752b37 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. (#5775) 81176737 Menus: Fixed using IsItemHovered()/IsItemClicked() on BeginMenu(). (#5775) 3920b1c7 Removed commented out old flags from when Tables was a branch. b15347cb Tables: activating an ID (e.g. clicking button inside) column doesn't prevent columns output flags from having ImGuiTableColumnFlags_IsHovered set. (#2957) 3e8d1981 Removed runtime patching of obsolete/invalid "%f"/"%.0f" types of format strings for DragInt()/SliderInt(). 5196bd15 Docs: Update outdated code sample (#5766) c54230d1 Backends: Using nullptr instead of NULL. (#5760, #4537) + fix additional warnings. 8a44c31c Scrolling: Further reduce unrelease mouse-wheel locked window timer + misc refactor (#2604, #3795, #4559) dfa1bb0a Backends: OSX: Fixed mouse inputs on flipped views. (#5756) 85a368b5 Fixed ImGuiWindowFlags_UnsavedDocument clipping label in docked windows with no close button. (#5745) c7d3d22a Scrolling: Mitigated issue where multi-axis mouse-wheel inputs (usually from touch pad events) are incorrectly locking scrolling in a parent window. (#4559, #3795, #2604) 80a870a3 Scrolling: Tweak mouse-wheel locked window timer so it is shorter but also gets reset whenever scrolling again (#2604) + small refactor 282b2b5a Backends: Vulkan: Fix building with VK_NO_PROTOTYPES. (#914, #5738). a588f00f Backends: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symetry. (#914, #5738). 58842198 imgui_freetype: Assert if bitmap size exceed chunk size to avoid buffer overflow. (#5731) f2a522d7 ImDrawList: Not using alloca() anymore, lift single polygon size limits. (#5704, #1811) cc5058e5 IO: Filter duplicate input events during the AddXXX() calls. (#5599, #4921) fac8295d IO: remove ImGuiInputEvent::IgnoredAsSame (revert part of 839c3100), will filter earlier in next commit. (#5599) 9e7f460c Fixed GetKeyName() for ImGuiMod_XXX values, made invalid MousePos display in log nicer. (#4921, #456) 07494533 Menus, Nav: Fixed not being able to close a menu with Left arrow when parent is not a popup. (#5730) 9f6aae3b Nav: Fixed race condition pressing Esc during popup opening frame causing crash. bd2355a0 Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple BeginMenu() call with same names). (#1207) 3532ed16 Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item in parent when the parent is not a popup. (#5730) d5d70506 Various comments e74a50f5 Added GetGlyphRangesGreek() helper for Greek & Coptic glyph range. (#5676, #5727) d17627b9 InputText: leave state->Flags uncleared for the purpose of backends emitting an on-screen keyboard for passwords. (#5724) 0a7054c7 Backends: Win32: Convert WM_CHAR values with MultiByteToWideChar() when window class was registered as MBCS (not Unicode). (#5725, #1807, #471, #2815, #1060) a229a7f3 Examples: Win32: Always use RegisterClassW() to ensure windows are Unicode. (#5725) e0330c16 Fonts, Text: Fixed wrapped-text not doing a fast-forward on lines above the clipping region. (#5720) 4d4889bf Refactor CalcWordWrapPositionA() to take on the responsability of minimum character display. Add CalcWordWrapNextLineStartA(), simplify caller code. 5c4426c5 Demo: Fixed Log & Console from losing scrolling position with Auto-Scroll when child is clipped. (#5721) 12c02468 Removed support for 1.42-era IMGUI_DISABLE_INCLUDE_IMCONFIG_H / IMGUI_INCLUDE_IMCONFIG_H. (#255) 73efcec5 Examples: disable GL related warnings on Mac + amend to ignore list. a725db17 Comments for flags discoverability + add to debug log (#3795, #4559) 325299f9 Backends: OpenGL: Add ability to #define IMGUI_IMPL_OPENGL_DEBUG. (#4468, #4825, #4832, #5127, #5655, #5709) 56c3eaed ImDrawList: asserting on incorrect value for CurveTessellationTol (#5713) 04316bd2 ColorEdit3: fixed id collision leading to an assertion. (#5707) c261dac0 Demo: moved ShowUserGuide() lower in the file, to make main demo entry point more visible + fix using IMGUI_DEBUG_LOG() macros in if/else. 51bbc706 Backends: SDL: Disable SDL 2.0.22 new "auto capture" which prevents drag and drop across windows, and don't capture mouse when drag and dropping. (#5710) 7a9045dd Backends: WGPU: removed Emscripten version check (currently failing on CI, ensure why, and tbh its redundant/unnecessary with changes of wgpu api nowadays) 83a0030c Added ImGuiMod_Shortcut which is ImGuiMod_Super on Mac and ImGuiMod_Ctrl otherwise. (#456) fd408c97 Renamed and merged keyboard modifiers key enums and flags into a same set:. ImGuiKey_ModXXX -> ImGuiMod_XXX and ImGuiModFlags_XXX -> ImGuiMod_XXX. (#4921, #456) f359dca0 Misc input related changes to facilitate upcoming merges. 85f327d8 InputText: added ImGuiInputTextFlags_EscapeClearsAll (#5688) 60ab8a94 InputText: fixed minor one-frame selection glitch when reverting with Escape + disable cursor rendering on revert frame. (#3008) 4b522e14 Experiment: ImGuiKey is now a typed enum, allowing ImGuiKey_XXX symbols to be named in debuggers. (#4921, #4537) 5c8041b4 Update gif in README + font names in examples 2736af6b Minor optimization of ImFontAtlasBuildMultiplyRectAlpha8() + README tweaks. efe4a372 Fix typo (#5691) 1dd964f8 Popups & Modals: Fix (amended) somehow undocumented Popup+Child behavior (useful for e.g. #718, #4461 and probably other things) 440f2576 Popups & Modals: fixed nested Begin() being erroneously input-inhibited. (useful for e.g. #718, #4461 and probably other things) 472f8013 Moved version number higher up in imgui.h to increase visibility 2b1d8e3e Fix more typos in sources and docs (#5681) 44e3ba11 Demo: moved "Mouse Cursors" section. moved "Filtering" section. 673df619 More compact README 1816c524 Examples: updated VS projects with .natvis file under imgui/ e8178bf8 Update README.md a0e1591a Fix more typos (#5679) 6c3c9cea Fix typos in source comments (#5675) 091445a4 Examples: added all SDL examples to VS solution. 513c1ba9 Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)' (#1057) cb48c81a Tabs: Fix initial tab state. Amend 3e6f948( (#5572) 52d9ee0d Tabs: Fixed ShrinkWidths() redistribution of remainder leading to infinite bug (second fix). (#5652, #5262) 3e6f9488 Tabs: Enforcing minimum size of 1.0f, fixed asserting on zero-tab widths. (#5572) b137f31b Tabs: Fixed ShrinkWidths() redistribution of remainder leading to infinite bug + over redistribution. (#5652) 2171375f InputText: clarified that callbacks cannot modify buffer when using the ReadOnly flag. 9e7c0f98 Fix typos in docs (#5649) b87e58fa ImGui::InputText: added support for shift+click style selection. (#5619) fe62927b Backends: OpenGL: Update comments. (#4445, #5642, #4649) 9e1ccf8f Commented out redirecting functions/enums names that were marked obsolete in 1.77 and 1.78 (June 2020): (#3361) edcd5b11 Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548) 5867a43d Backends: GLFW: Honor GLFW_CURSOR_DISABLED by not setting mouse position. (#5625) 9445776d Nav: Fixed an issue opening a menu with Right key from a non-menu window. 03fc9a0b Menus: Fixed gaps in closing logic. (#5614) b3ea01d8 Menus: Fix sub-menu inhibition stopping working in some cases. (Amend WIP) (#2517, #5614, noticed in #5546) a502ceb0 Added commented out older obsolete names (1.42 to 1.52) 2569c647 Demo: Improved "Constrained-resizing window" example, more clearly showcase aspect-ratio. (#5627, #5618) 7f251439 Better error reporting for PopStyleColor()/PopStyleVar() + easier to recover. (#1651) 747c9a7a IsKeyPressed(), IsMouseClicked(), GetKeyPressedAmount(): add a (normally unnecessary) test for ->Down next to ->DownDuration tests, facilitating the use of key eating mechanism. e13913ed IsItemHovered: Added ImGuiHoveredFlags_DelayNormal, ImGuiHoveredFlags_DelayShort, ImGuiHoveredFlags_NoSharedDelay. (#1485) b3b3a071 Nav: Fixed regression in e99c4fc preventing CTR+Tab to work without NavEnableKeyboard (#5504, #4023); 2c1262b4 ImVector: fix undefined behaviour during copy operator if source vector is null. (#5608) 72096bf6 Clipper: simplify code and remove cases where true is returned with empty display range as an extra step. 07b9999d Debug Log: added 'Clipper' events logging. 4eb90669 Clipper: extract code into a ImGuiListClipper_StepInternal() to facilitate debugging. Moved clipper End() call to outer layer, stopped heretic use of comma operator. 21b5fac5 Backends: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount' (#5603) d357e850 TestEngine: revert part of 5b0510c as IMGUI_TEST_ENGINE_ITEM_ADD() woul see an erreneous hierarchy. 7f4b477d CI: Update ubuntu version (#5598) cdebd70e Fix PVS-Studio static analyzer warning for "buffer underflow" 5b0510c5 TestEngine: facilitate aiming at InputScalar() using wildcards + removed unnecessary IDStack.size hack (require TestEngine latest) ef6ba0d8 Misc: allowing override of IM_TABSIZE (#5593) 26856507 InputText: numerical fields automatically accept full-width characters (U+FF01..U+FF5E) by converting them to half-width (U+0021..U+007E). a396233c Platform IME: Windows: Revert 133bbafa and 29a8ee08 as regression until new results comes. (#2589, #5535, #5264, #4972) 839c3100 Debug Log: Added IO events logging. 133bbafa Platform IME: Windows: Fixed a call to ImmAssociateContextEx() leading to freeze on some setups. (#2589, #5535, #5264, #4972) c911901b Fix ImGuiIO docs and default values (#5540) 0a4ddd72 Fix being unable to mouse wheel while dragging a payload (fix 1480bc5, #4921, #2891) 4a2ae06c Changed signature of ImageButton() function: Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. (#5533, #4471, #2464, #1390). 0e95cf0d Fix appending to windows causing a child window to be inserted to g.WindowsFocusOrder which eventually causes a crash. (#5515, #3496, #4797) e926a664 TabBar: Allow closing entire TabBar (possible docking only) when it contains user-appended buttons. (#5515) e99c4fc6 Nav: fixes keyboard/gamepad nav actions running without the corresponding config flags (#5504). Fixes 8b8a61b. #4921, #4858, #787, #1599, #323) 2d38bc99 Internals: renamed recently added ImGuiInputReadFlags to ImGuiInputFlags. (Amend 8b8a61b) 6ab5fd1d Tables,Columns: fixed a layout issue where SameLine() prior to a row change would set the next row in such state where subsequent SameLine() would move back to previous row. 8731cc29 Examples: Vulkan: Add c++ version to CMakeLists (#5459) 1480bc5d Added ImGuiKey_MouseXXX aliases. (#4921) Reworked SetItemUsingMouseWheel() to use this for ActiveId. (#2891) 105bb3ef Legacy: clear g.ActiveIdUsingNavInputMask when active id is clear + Internals: added helpers GetKeyChordName(), ImGuiModFlags_All. 8b8a61bd Removed io.NavInputs[] and ImGuiNavInput enum. Kept inline redirection code. (#4921, #4858, #787, #1599, #323) a7a25ee1 Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift. (#2673) 92d0924b Fixed build with IMGUI_DISABLE_OBSOLETE_KEYIO + made all examples comments refer to StyleColorsLight(). 4711b9b0 Add trailing commas to enum (to simplify the diff/patch of further additions) (#4537) 90ef3278 Reordered keys representing directions to follow a consistent L/R/U/D order everywhere. (#2625, #4921, #3724) f9ccdba3 Nav: Fix regression 93f02ee + Internals: Remove ImGuiNavReadMode_Pressed, ImGuiNavReadMode_Released. 93f02ee0 Nav: Fixed moving window with gamepad or keyboard when running at very high framerate + removed ImGuiNavDirSourceFlags_RawKeyboard. 82e10f1b Backends: Metal: Add dispatch synchronization. (#5447) 0b2da679 Internals: clarified that GetInputTextState(0) can not return a pointer. Replaced a use of __APPLE__ with io.ConfigMacOSXBehaviors. 467a1cd4 Misc: io.Framerate moving average now converge in 60 frames instead of 120. (#5236, #4138) 67410d53 Backends: Metal, OSX: Various fixes (ARC / Autorelease fixes with metal-cpp and extensions). (#5403) 609b935a InputText: added experimental io.ConfigInputTextEnterKeepActive feature to make pressing Enter keep the input active and select all text. 0afc6cd3 Internals: InputTextEx() renames for correctness. enter_pressed -> validated, is_validate_enter -> is_enter_pressed 873e9d35 Internals: renamed TreeNodeBehaviorIsOpen() to TreeNodeUpdateNextOpen(). Added internal TreeNodeSetOpen(id). (#5423) 24dfe6db Version 1.89 WIP 088ddef9 Tables: extracted some code into TableBeginContextMenuPopup() for easier reuse for appending into context menu. 9aae45eb Version 1.88 d51e5d28 TabItem: revert support for SetNextItemOpen(true) at it creates too much ambiguity with p_open/close button vs Selected state. (#5262) c4b91017 TabBar: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their initial width more precisely. 4b972961 TabBar: TabItem() now reacts to SetNextItemWidth() and SetNextItemOpen(true). (#5262) d3fd2630 Sliders: An initial click within the knob/grab doesn't shift its position. (#1946, #5328) + Adjust default GrabMinSize. f27af1b2 Internals: SliderBehaviorT: Minor refactor, clearer 0.0/1.0 early out. Should be no-op from user's point of view. 90e8404a Update README.md 37a07858 Nav: Fixed inability to cancel nav in modal popups. (#5400) 07efd7cc Renamed IMGUI_DISABLE_METRICS_WINDOW to IMGUI_DISABLE_DEBUG_TOOLS. 08572189 MovingWindow auto-cancelled if active id is stolen (instead of ill-defined bahavior + assert in docking). 27343efb Nav, Focus: Changed SetKeyboardFocusHere() to not behave if a drag or window moving is in progress + move KeepAliveID() call from Scrollbar() to ScrollbarEx() ddcff103 Settings: Fixed some SetNextWindowPos/SetNextWindowSize API calls not marking settings as dirty. 6cac48df Drag, Slider: rework slightly or CTRL+Click or SetKeyboardFocusHere() will show 1 change of active id in the log (rather than a set,clear,set sequence) dd285008 Debug: Add more log. Reworked IMGUI_DEBUG_PRINT IMGUI_DEBUG_PRINTF. Added internal IsDragDropActive() helper. 2ed9e21e Nav, Internals: wrap changes to g.NavWindow into a helper function to help track/log changes. 1d6e34f3 Debug: Added ShowDebugLogWindow(). ec2c805e Backends: support for unity builds for dx10/dx11/dx12 backends (#5387) 076d8fc8 Nav: Fixed issues with nav request being transferred to another window when calling SetKeyboardFocusHere() and simultaneous changing window focus. (#4449) 0b1bcfcc Menus: Separate menu sets by nav layer. (#3496, #4797) + Demo: Remove incorrect and useless suggestion to use PushID(). a35e8769 InputText: Amends and tidying up: Fixed undo/redo state corruption when editing buffer in user callback. (#4947, #4949) 530332df InputText: Fixed undo/redo state corruption when editing buffer in user callback. (#4947, #4949) 23a785ae Internals: wrapped used of g.TempBuffer into ImFormatStringToTempBuffer/ImFormatStringToTempBufferV helpers. 64d6c305 InputText: Fixed an undo-state corruption issue when editing buffer before reactivating item. (#4947) + Metrics: Added "InputText" section. 74f02703 Misc comments + Demo: use IsItemVisible() when using direct ImDrawList calls. 65c4c0a4 IO: Added SetAppAcceptingEvents() function (#4921, #4858) 17b8c3b6 Demo: Removed redundant window flag (#5367) 7354009a Backends: Metal: Fixed null dereference inside command buffer completion handler. (#5363, #5365) 74f7ac04 Misc: Fix font compressor utility warnings. (#5359) f58bd817 Tables: Fix drawcall merging of last column. (#4843, #4844) e23c5edd Settings: Fixed out-of-bounds read when .ini file on disk is empty. (#5351) 697ce2d6 InputText: Fixed a one-frame display glitch where pressing Escape to revert after a deletion would lead to small garbage being displayed for one frame. (#3008) 5139fb7e Docs: Add index ae2fb557 Docs: Update templates with link to Contributing guidelines. Add numerical version number in demo. Moved. (#5337) 814ecedd Docs: creates CONTRIBUTING.md (#5337) e5b2286c Backends: OpenGL3: Fix apple TARGET_OS_* not defined warning. (#5321) ca222d30 Backends: OpenGL: Partially revert 1.86 change of using glBufferSubData(): now only done on Intel GPUs. (#4468, #3381, #2981, #4825, #4832, #5127) 7bf07d25 Renamed CaptureMouseFromApp() and CaptureKeyboardFromApp() to SetNextFrameWantCaptureMouse() and SetNextFrameWantCaptureKeyboard(). Added demo. (#5304, #4831, #4480, #533) cb56b0b2 Removed leftover KeepAliveID() call in GetIDWithSeed() variant. (#5181) + doc tweaks. e346059e IO: Fixed input queue trickling of mouse wheel events. (#4921, #4821) 60bea052 Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states. (amends) b7686a88 Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states. 507a8735 DrawList: Circles disappear when using a radius < 0.5f (#3491) 9e0517a1 DrawList: Fixed divide-by-zero or glitches with Radius/Rounding values close to zero. (#5249, #5293, #3491) 9779cc2f Internals: shallow changes to simplify diff of upcoming commits. Should have no side-effect. 4db55f88 Changed FONT.md edit to blob (#5290) d768b8c8 Backends: Metal: Align code more closely with other backends. OSX: Add missing return for mouse pos events. 55f89893 Docs update, binaries link + Backend: Allegro: fix warning (#5281) 6d27fecc Debug: added DebugTextEncoding() to help diagnose between text encoding issues and font loading issues. Simplified code + extracted DebugNodeFontGlyph(). e6688908 Debug: added encoding viewer in Metrics. e66fc220 Backends: OSX: Removed ImGui_ImplOSX_HandleEvent() from backend API. Move event tracking (desktop only) to OSX backend. (#4821) 26f81780 Backends: Vulkan: Don't use VK_PRESENT_MODE_MAX_ENUM_KHR as specs state it isn't part of the API. (#5254) d58b8414 Backends: OSX, Metal: Tweaks. Use preferred method of obtaining a timestamp. (#4821) 3e5dde9a Tables: Fixed incorrect auto-fit of parent windows when using non-resizable weighted columns. (#5276) 709bc03d Backends: GLFW: fixed ImGui_ImplGlfw_TranslateUntranslatedKey() for lower case letters on OSX (#5260, #5261) 314c7bd1 Internals: renamed ImGuiInputReadMode to ImGuiNavReadMode (internals) to avoid ambiguity with upcoming flags. + minor tweak e54db4ee Backends: OSX, Metal: Store backend data in a per-context struct, allowing to use these backends with multiple contexts. (#5203, #5221, #4141) 04689979 Examples: Emscripten+WebGPU: Fix for latest spec rename of WGPURenderPassColorAttachment::clearColor to ::clearValue (#3632) b5b704d3 Windows: Fixed first-time windows appearing in negative coordinates. (#5215, #3414) 5b29d147 Layout: Fixed mixing up SameLine() and SetCursorPos() together. SameLine() is a stateful. eda7792b Internals: swapped blocks in TextEx() to make it easier to step through common cases. Tweak demo. 28b2089e Internals: moved ItemSize() variant to inline + comment. + Tidying up todo list (#5191) 14ca75d4 Backends: SDL, OpenGL3: Small fixes for AmigaOS4. (#5190) + Allow redefining IM_COL32_XXX layout macros. (#5190, #767, #844) 088487a3 Nav: Fixed nav movement in a scope with only one disabled item from focusing the disabled item. (#5189) fc203c7d Minor fix to sastisfy PVS-Studio warning. (amend, 3nd attempt: this is a false positive from PVS studio) 6d15a506 Internals: removed GetIDNoKeepAlive() now that it is the same as GetID(). (#5181) 90386780 Misc: Fixed calling GetID("label") _before_ a widget emitting this item inside a group (such as InputInt()) from causing an assertion when closing the group. (#5181). 937d0733 Updated comment about Edit.NavigateTo to Edit.GoToAll. (#5179) f7f30476 Added comments about requirement for bilinear filtering. (#5156, #3245) + Backends: SDL_Renderer: Explicitely call SDL_SetTextureScaleMode(). (#4927) 2c03aac6 Renamed ImGuiKeyModFlags to ImGuiModFlags (Breaking but technically never advertised type) a472e883 InputScalar: Automatically allow hexadecimal/scientific input when format is adequate. c521883b Sliders, Drags: Fixed manual input when using hexadecimal display format string. (#5165, #3133) 508c9aaf Sliders, Drags: Fixed using hexadecimal display format strings (pretty much never worked). (#5165, #3133) f5c5926f Internals: remove obsolete variants of RenderArrow(), RenderBullet(), ImHash() + misc comments. 88fbc31e stb_truetype: fix a division by zero (unused chain of result, but triggering debuggers). (#5139, #5075) 2747a8ca Turned ImVec2 to const ref to RenderChar(), RenderText(), ColorButton(), PushClipRect(). for consistency. Comments about polygon filling winding order. 0dec4307 Menus: Adjusted BeginMenu() closing logic so hovering void or non-MenuItem() in parent window always lead to menu closure. 2d76b09d Backends: Metal: Conditional check, amend 7602277 (#5122, #5123) 1ba29050 Update README, quote, mission statement 3587ee49 Viewports: store Viewport field in ImGuiWindow to facilitate using code accross branches + fix PVS warnings. dfbe938e InputText: Fixed pressing Tab emitting two tabs characters. (#2467, #1336) 16ddc169 Fixed creating multiple-context (regression in 28ba54a). (#5135) 1ad8ad62 Backends: GLFW: Fixed keyboard modifiers events being reported incorrectly on Linux/X11. 7d7bf993 ImDrawList: Fix texture-based anti-aliasing with RGBA textures (#5132, #3245) 3c078795 Backends: OSX: Inputs: Monitor NSKeyUp events to catch missing keyUp for key when user press Cmd + key (#5128) c5f67218 Backends: SDL: Fix multi-viewport dragging issue with SDL on some systems. (v2 for master, using bd->MouseButtonsDown == 0) (#5012, #5082) 7602277c Backends: Metal: Remove weak ref (#5122, #5123) 31e77eac Backends: SDL: Add extra mouse buttons handling (#5125) 6fae2967 Examples: Emscripten: Fix build. (#3632) 28ba54a3 Internals: add AddSettingsHandler(), RemoveSettingsHandler(). fd06ed83 Misc: tweaks + fix warnings on backends withtout -wno-memaccess (#4995, #5104) 0cff5ac5 Updated stb_textedit.h from 1.20 to 1.26 (many fixes). (#5075) de451d44 Updated stb_textedit.h from 1.13 to 1.14. (#5075) 279db558 Updated stb_rect_pack.h from 1.00 to 1.01. (#5075) 3deb92c2 Add IMGUI_STB_SPRINTF_FILENAME to support custom stb_printf.h include path (#5068, #2954) 0f149335 Tables: Fixed incorrect border height used for logic when resizing one of several synchronized instance of a same table ID, when instances have a different height. (#3955, #3565) 6315716f Backends: Glut: Fix comparison operator precedence. 1e18da5c Backends, Examples: Add comments about using WndProc handler and WantCaptureXXX flags. (#5061) 54fb051e ColorEdit: Fixed text baseline alignment after a SameLine() after a ColorEdit() with visible label. fa2b318d IO: Fixed input queue trickling of interleaved keys/chars events when InputText() is not active. (#4921, #4858) 5659db55 IO: Fixed backward-compatibility accesses to io.KeysDown[]. (#4921, #4858) a61ca097 Backends: OSX: Fix typo in scrolling event handler. (#5036) dca527be Clipper: Assert on extraneous calls to Step(). (#4822) + Demo tweak. 29d462eb Set HoveredID even when g.NavDisableMouseHover is set by gamepad/keyboard navigation. This will facilitate the use of future InputOwner API based on HoveredID/ActiveID. 421e73e6 Fix an assert in metrics. d9e60d29 Clipper: Fixed a regresssion when not calling End() + calling End() twice as well. (#4822) 5c8f8d03 ImVector: Fixed erase() with empty range. (#5009) amend/fix b6b8f66 2dfa71fa Inputs: Fixed IsMouseClicked() repeat mode rate being half of keyboard repeat rate. Using KeyModAlt. Removed KeyModsPrev. 7ff41a78 Fonts: binary_to_compressed_c.cpp gained -nostatic option (#5021) 8d390636 CI: Fixes for OSX + explicitely request C++11. b6b8f663 ImVector: Fixed erase() with empty range. (#5009) 5854da10 Declare other structures as constexpr (#4995) + rename ImGuiInputEventType_Char to ImGuiInputEventType_Text for consistency with event structure. 71f98dd0 Declare ImVec2 and ImVec4 constructors as constexpr (#4995) 955aacfb GCC: Disable deprecated-enum-enum-conversion for gcc as well (#4997) 4691fa0e ImDrawList: PthArcTo: Add small tolerance when comparing angles (#4993) aa79d0cd Stack Tool: Added option to copy item path to clipboard. (#4631) 88de9820 Version 1.88 WIP 97b1abd6 Internals: rework RenderMouseCursor() signature so we can use it in docking branch more naturally. c71a50de Version 1.87 e52bb147 Backends: GLFW: Added ImGui_ImplGlfw_InstallCallbacks()/ImGui_ImplGlfw_RestoreCallbacks(). (#4981) 732bc205 Backends: GLFW: Handle spurious leave/enter sequences apparently submitted by X11/GLFW combo. (#4984) 40fd163a Backends: OpenGL3: Fix OpenGL ES2 includes on Apple systems. 2554b512 Backends: OSX: Forward keyDown/keyUp events to OS when unused by Dear ImGui. c6cab1f3 Backends: SDL: Added SDL_Renderer* parameter to ImGui_ImplSDL2_InitForSDLRenderer(). Use SDL_GetRendererOutputSize() instead of SDL_GL_GetDrawableSize() when bound to a SDL_Renderer. (#4927) c39192ba Backends: SDL_Renderer: Fix texture atlas format on big-endian hardware (#4927) 43177324 Backends: GLFW: Fixed miss untranslation of keypad keys. (#4921, #452) 6f73dbea TestEngine: submit window data to item system. 35e197f4 TestEngine: fixed InvisibleButton() and ArrowButton() not calling the info macro. 551ab84c Backends: OSX: Fix building with old Xcode versions. 422902db Correct typos (#4954, #4955), use IM_STATIC_ASSERT now that old pre-C++11 macro has been obsoleted. 64d910ad Removed IMGUI_API from inline templated classes. (#4962) 49e38a5b Revert moving ImGuiKeyModFlags to internal.h (amendc906c65) 9def2b04 IO: Added simple (incomplete) filter for duplicates to reduce data spam. (#4921, #4858) 5429f0f6 Backends: OSX, Android: Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. (#4921, #4858) c906c65c (BREAKING) Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. Backends: update most. (#4921, #4858) 718daa15 Rendering: defer responsability of calling _PopUnusedDrawCmd() later so RenderDimmedBackgrounds()/RenderMouseCursor() don't need to deal with the side-effects (#4857, #4317) 075f4ac6 Don't merge ImDrawCmd which have had their IdxOffset changed to not be sequential. Fixed CTRL+Tab into an empty window causing artefacts on the highlight rectangle due to bad reordering on ImDrawCmd. 85553359 Shallow alignment of ImGuiKey stuff + moving some in internals. Internals: add offset to ImBitArray<>, simpify ActiveIdUsingKeyInputMask. 08f3aa89 Popups: Fix b17b2fb (#4936) 4caf1e9b Backends: GLFW: fix ImGui_ImplGlfw_TranslateUntranslatedKey() for grave accents. (#456, #2625) + fix preceeding commit. b17b2fb7 Popups: Fixed an issue when reopening a same popup multiple times would offset them by 1 pixel on the right. (#4936) cda3db14 Backends: SDL: Fixed key mapping for ImGuiKey_Menu (#4921) + misc typos (#4928) dd6a44ab Fix compiler warning for Intel compiler (#4934) 4fb0c1f9 Correct some typos in FAQ.md (#4924) cff03424 Internals: moved lines into a Inputs section. c2db4c24 Demo: draw a section of keyboard in "Inputs > Keyboard, Gamepad & Navigation state" to visualize keys. 69b69737 Comments, tweaks. 26e59c87 Nav: Fixed gamepad navigation in wrapping popups not wrapping all the way. (#4365) 62d6be37 IO: Removed ImGuiInputSource from public api for now, unnecessary. (#4858, #787) 5ea47d95 Backends: OSX: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 39c3412f Backends: SDL: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 3d854337 Backends: GLFW: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 9f8c599c Backends: Win32: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) f33bb998 IO: added AddKeyAnalogEvent() and support for ImGuiKey_GamepadXXXX. (#4858, #787) 6e63fcac Backends: Vulkan: Amends, fix miscast on 32-bit systems with the right ImTextureID=ImU64. (#914) ceb26bac Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, amends. (#914) 29f10431 Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, add ImGui_ImplVulkan_AddTexture(). (#914) 19471da3 Popups: Fix a crash when a new window is created after a modal on the same frame. (#4920) 7ad42ff4 IO: renamed io.ConfigInputEventQueue to io.ConfigInputTrickleEventQueue. (#4858) 26d04c94 Tables: Fixed positioning of Sort icon on right-most column with some settings (not resizable + no borders). (#4918). 97b1ffcb IO: Reorder enums, compact a little in header. Removed const from internal GetKeyData(). 91ae56af Removed support for legacy arithmetic operators (+*/) when inputing text into a slider/drag. (#4917, #3184) 673f5e58 IO: moved fields to put more focus on the new functions + update misc docs/references + update main.mm in Apple+Metal example (#4858) 90a69616 IO: apply same flooring as UpdateMouseInputs() in dupe event processing. (#4858) + provision for test engine. 7374b96f IO: Added input queue. (#4858, #2787, #1992, #3383, #2525, #1320) b8e56dce IO: Added AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() api + updated all Backends. (#4858) (input queue code will be next commit) b6582a47 Backends: OSX: Fix Game Controller nav mapping to use shoulder for both focusing and tweak speed. (#4759) 92c4ff1c Rename ImGuiKey_LeftControl to ImGuiKey_LeftCtrl, ImGuiKey_RightControl to ImGuiKey_RightCtrl + made key order match mods order. (#4858) 07557674 Backends: move io.AddKeyModsEvent() next to io.AddKeyEvent() submission, rely on mods from platform/source. (#4858) + fix #2622 again broken by 746c9f7 eb823655 Removed support for pre-C++11 compilers. We'll stop supporting VS2010. (#4537) f84c93d8 Update BACKENDS.md (#4909) 45c4365e Backends: GLFW: glfwGetKeyName is not implemented in emscripten (#4907, #4858) 6188e941 Examples: Vulkan: fill Subpass and MSAASamples to increase discoverability (#4886) + IO docs update (#4858) 553b0488 Backends: SDL: Fix for Emscriptem. Amend 98ce013. 95516356 IO: fix SetKeyEventNativeData() not handling ImGuiKey_None the same way as AddKeyEvent(). (#4905, #4858) 200a8f1e Backends: GLFW: Update mouse inputs using glfwSetCursorPosCallback() (breaking) + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons. 98ce0132 Backends: SDL: Update mouse inputs using SDL_MOUSEMOTION/SDL_WINDOWEVENT_LEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons. bf4de2a4 Backends: Win32: Update mouse inputs using WM_MOUSEMOVE/WM_MOUSELEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before Key Modifiers. 7f8a89c2 Backends: Win32, SDL: maintain MouseButtonsDown instead of using IsAnyMouseDown(). Internals: added GetInputSourceName(). 457d4b7b Backends: OSX: Adedd basic IME support for macOS. (#3108, #2598) 290c5173 Fixed warning in ImFloorSigned(). (#4889) 0818a423 Backend: WebGPU: Fixed incorrect size parameters in WGPU backend (#4891) 96186a93 Typo correction in imgui_demo.cpp (#4892) 956e0300 Backends: OSX: Build fIx. Made GetKeyName() input tolerant. Internals: added GetNavInputName(). e8172fdf Rename io.AddKeyModEvent() -> io.AddKeyModsEvent() and updated backends accordingly. (#2625, #4858) b2e2cc44 Backends: OSX: Fixed typo. 790132a6 Added io.AddKeyModEvent() and updated backends accordingly. (#2625, #4858) 1797135d Backends: Android: Update to use io.AddEventKey() will full key map (#2625, #4858) ee436aa8 Backends: OSX: Update to use io.AddEventKey() will full key map (#2625, #1873, #4858) da1864d7 Backends: GLUT: Update to use io.AddEventKey() will full key map (#2625, #4858) 1bfe4a75 Backends: Allegro5: Update to use io.AddEventKey() will full key map (#2625, #4858) fe646ea5 Backends: SDL2: Update to use io.AddEventKey() will full key map (#2625, #4858) + created localized key (using keycode instead of scancode) (#456) ecd212c0 Backends: GLFW: Update to use io.AddEventKey() will full key map (#2625, #4858) 746c9f76 Backends: Win32: Update to use io.AddEventKey() will full key map (#2625, #4858) bf08c13e Inputs: Extra Keys / AddKeyEvent(): bidirectional mapping, basic CI, simplify backends, asserts on misuses, tested backward compat. (#2625, #4858, #2787) 3b669293 Inputs: Extra Keys / AddKeyEvent(): Added ImGuiKey values, io.AddKeyEvent(), GetKeyName(), IMGUI_DISABLE_OBSOLETE_KEYIO. Obsoleted GetKeyIndex(), io.KeyMap[], io.KeysDown[]. (#2625, #4858, #2787) afffcd58 Inputs: rename ImGuiKey_KeyPadEnter > ImGuiKey_KeypadEnter (#2625) 100ede57 Backends: GLFW: Fix CTRL+A, CTRL+Y, CTRL+Z to match keyboard layout. Converting GLFW untranslated keycodes back to translated keycodes. (#456, #2625) 4d023bd7 Fix for using IMGUI_DISABLE_OBSOLETE_FUNCTIONS de36ff04 Platform IME: add ImGuiPlatformImeData::InputLineHeight (unused by win32). (#3113) 29a8ee08 Platform IME: add ImGuiPlatformImeData::WantVisible, hide IME when not used. (#2589) 1cbfe935 Platform IME: [windows] call ImmSetCandidateWindow() to position candidate window. 2706c9d6 Platform IME: reworked internals to simplify adding new features. 3a90dc38 Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API. 04bc0b0b Fix IdxBuffer related comments. (#4845, #4863) 28eabcb0 Internals: refactor: mouse input functions into their own section. 206b9ead IO: removed unused MouseDragMaxDistanceAbs(). Using a shortcut variable in UpdateMouseInputs(). c5a3cae8 Reordered some IO fields. Misc comments. Removed beta marker from tables comments. efa50f72 Backends: Metal: Ignore ImDrawCmd where ElemCount == 0. (#4857) b0a6cd63 Fixed a situation where CTRL+Tab or Modal can occasionally lead to the creation of ImDrawCmd with zero triangles, (#4857) 2402958a Commented out redirecting functions/enums names that were marked obsolete in 1.69, 1.70, 1.71, 1.72 92d7869f Happy new year! 83d22f4e Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::AddCallback().(#4843, #4844) 41e39ea6 Backends: Metal: Add Metal C++ bindings support. (#4824, #4746) dbeea722 Backends: Silence overzealous warnings. (#4834) Add comments about SetDragDropPayload() return value. (#4835) 89a28209 Version 1.87 WIP + Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init, added in 1.86 (#4468, #4830) 980deb4c Add missing include guard to avoid declaring ImFontAtlasGetBuilderForStbTruetype() function. 512c54bb Version 1.86 612b787b Menus: fixed top-level menu from not consistently using style.PopupRounding. (#4788) 4bad852a Backends: SDL_Renderer: Handle change to SDL_RenderGeometryRaw() function signature in SDL 2.0.19 (#4819) 0636f9ad InputText: fixed Shift+Delete from not cutting into clipboard. (#4818, #1541) d9bc1e44 Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. (#368, #375) 0cdc4a95 Backends: Win32: Store left/right variants of Ctrl/Shift/Alt mods in KeysDown[] array. (#2625) 4a43dcb9 Internals: reduced side-effects of setting window->HiddenFramesForRenderOnly > 0 1c4066cd Internals: UpdateWindowInFocusOrderList: amend a528398 to fix docking. (#3496, #4797) 389982eb Backends: OpenGL3: Using buffer orphaning + glBufferSubData(), seems to fix leaks with multi-viewports with some Intel HD drivers.. (#4468, #4504, #2981, #3381) 48f26333 Menus: fixed closing a menu inside a popup/modal. Fixed menu inside a popup/modal not inhibiting hovering of items in the popup/modal. (#3496, #4797) a528398c Internals: support for varying _ChildWindow flag for menu windows. (#3496, #4797) 11638fdf Menus: reuse more menu windows when stacked over popups. 0e8c199e CI: Use regex to fix vcxproj platform and toolset versions. (#3249) Remove Discord integration. d7350668 Fix OSX warnings + Examples/Apple+GL2 calls super reshape. (#4759, #1873) 1b6b8602 Backends: OSX: Fix keyboard support. Handle scroll cancel. Don't set mouse cursor shape unconditionally. (#4759, #4253, #1873) f71ee520 Fix infinite loop in ImFontGlyphRangesBuilder::AddRanges if the user passes upper range = UINT16_MAX without IMGUI_USE_WCHAR32. (#4802) b720f1f0 Backends: OSX: Add Game Controller support. (#4759) 8a9fe268 Menus: fixed closing a menu by clicking on its menu-bar item when inside a popup. (#3496, #4797) c8017992 Added an assertion for the common user mistake of using "" as an identifier at the root level of a window. (#1414, #2562, #2807, #4008, #4158, #4375, #4548, #4657, #4796) a8e1dde3 Fix static analyser, update readme. e03383d0 Fixes for tooltip over modals leading to incorrect modal dimming. (#4729) bdd2a943 InputTextMultiline: fixed vertical tracking with large values of FramePadding.y. (#3781, #4794) 072caa4a InputText: fixed incorrect padding when FrameBorder > 0. (#4794, #3781) 270d4d08 Nav, Docking: Fix crash on dimming docked window and DockSpaceOverViewport() with PassthruCentralNode. a19815dc Backends: Allegro5: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790) c80e8b96 Backends: OpenGL2, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790) b38af0f5 Popups: Fix popups being closed by newly appearing windows. (#4317) 657073a6 Nav, Docking: fix dimming crash with accessing zero-cmd ImDrawList (amend 1dc3af3, 23ef6c1) 20e040c8 Clipper, Tables: remove table specific code path should now be ok (added assert). 926addbf Clipper: fixed invalid state when number of frozen table row is smaller than ItemCount. 027a7ba3 Clipper: use line size instead of cursor comparaison when range are large. (#3609, #3962 + ocornut/imgui_club#20) a76bc52d Window, Clipper: store initial precision loss and apply in clipper. (#3609, #3962 + ocornut/imgui_club#20) 6e141a9c Internals: made ScrollbarEx() use ImS64 to facilitate use with larger ranges (not fully tested) + clipper tweaks (#3609, #3962 + ocornut/imgui_club#20) eea83613 InputText: fix buffer modifications in callbacks while using resize callback (#4784) aa41f165 Separator: fixed cover all columns while called inside a table. (#4787, #205) 23ef6c14 Reworked modal/ctrl+tab dimming system to be entirely processed at end of the frame (backported 1dc3af3 from docking) da3a36ee Backport from docking branch: minor stuff. 78c6435d Inputs: (breaking wip) removed IsMouseTripleClicked() added recently (during 1.86 WIP), replaced with GetMouseClickedCount(). (#3229) 5c388c39 Backends: SDL_Renderer: Added support for large meshes (64k+ vertices) with 16-bit indices, enable 'ImGuiBackendFlags_RendererHasVtxOffset' in this backend. (#3926) 5b1a70aa Fixed RenderRectFilledWithHole() (used by docking) + added dummy EndFrameDrawDimmedBackgrounds() stub in master. 440824d4 Backends: Fixed early out on empty clip rect. In particular, DX12 backend would warn about it (others not so much). (#4775, #4464) f087a5b8 Metrics: Added a node showing windows in submission order and showing the Begin() stack. c5db2765 InputText, Nav: fixed tabbing through InputTextMultiline(). (#4761, #3092) 9d704d99 Internals: wrapped ImQsort() in an inline function + added a define guard. 66f0fb98 Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761) 5ccb6679 Backends: WebGPU: Passing explicit buffer sizes as validation layers appears to not do what the in-flux specs says. (#4766 cb5c73f6 Fix: IM_DEBUG_BREAK macro on ARM GCC (#4767) 65f4be1a InputText: Internals: moved "apply_new_text" application code to reduce noise in a future commit (will be for #4714) + removed unused fields. 5ac25e7c InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) 4d9a3b19 Internals: Implement a continuable IM_DEBUG_BREAK on GCC for common archs. (#2673) 764f9e60 Fixed crash on right-click without modal, introduced by previous commit a3667f46, (#4729) a3667f46 Fixed tooltip in own viewport over modal from being incorrectly dimmed. (#4729) 3fde445b Misc: Added missing ImGuiMouseCursor_NotAllowed cursor for software rendering (when io.MouseDrawCursor is enabled). (#4713) d80a9123 Internals: move chunks of IsItemHovered() so upcoming commit can be less noisy. This commit should be a no-op (check by comparing without white-space changes) 2c29e391 Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceAllowNullID doesn't lose tooltip when scrolling. (#143) f8a806ad Tooltips, Internal: (Breaking) swapped parameter order to accomodate for future tooltip api rework. 7cd3cfa5 Demo: Add IMGUI_DEMO_MARKER (currently unused, but usage by altering GImGuiDemoMarkerCallback) (#3689) cad790d4 Nav: fixed backwrap tabbing wrap on sibling child windows with _NavFlattened flag. (#4449) e790fc0e Nav: prevent child from clipping items when using _NavFlattened and parent has a pending nav request. (#787) a9ea1ae8 Nav: fixing assert using Tab in a window without any tabbable element (#4449) eb02dcf8 Nav: enable move/resize window with keyboard in Ctrl+Tabbing windowing menu even without _NavEnableKeyboard. (#4023, #787). 8ce23b3c Nav: Ctrl+tabbing to cycle through windows is now enabled regardless of _NavEnableKeyboard. (#4023, #767) bce1ba40 Clipper: add ForceDisplayRangeByIndices (#3841, #3578) ebac3757 Docs: added info about Freetype, editing sponsors. 1a7526dc Nav, Tabbing: refactor tabbing system to support clipped items, scrolling, using nav queries. (#4449) f01a6d3e InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682) 32779c5b Clipper: hotfix (amend 93cccd2, was broken) (#3841, #1725) 64daeddf Removed CalcListClipping() function. (#3841) 6a7e2c74 Clipper: remove ForceDisplayRangeByIndices/ForceDisplayRangeByPositions functions until we find a need for them, since #3841 is now solved automatically. 93cccd27 Clipper: bunch of rework. (#3841, #1725) cd1b5f78 Clipper: enhanced ImGuiListClipper (#3841) b409df34 Clipper: Fixed content height declaration slightly mismatching the one of when not using a clipper. 14466a6d Nav: Page/Home/End doesn't immediately restore highlight (before results comes) + pressing Esc to exit a child window re-enable the Nav highlight if it was disabled by mouse. 978598b1 Nav: pressing PageUp/PageDown/Home/End when in Menu layer automatically moves back to Main layer. + fixed resizing window from borders setting navigation to Menu layer. d1eb7b57 ScrollToItem: amend fully visible tests to take account of spacing used (fix nav in one axis scrolling back and forth between axises when space is tight by just < ItemSpacing*2) (#3692, #2812, #4242, #2900) eb654f1b Typo b1a68d89 Fix misplaced backtick in FAQ.md (#4669) a67f7dce Nav: relative rectangle positions are now stored relative to CursorStartPos to be independent of scrolling. Will facilitate rework of clipper (#3841) 8d361c47 Nav: rework NavEnableSetMousePos application so scrolling is applied more consistently in NavCalcPreferredRefPos() + moved at end of NavUpdate() after the last SetScroll have been done. 8361ed1f Nav: wrap abs<>rel rectangle conversions before we attempt to switch the reference point from window->Pos to window->DC.CursorStartPos. This commit should have no effect. 19c72cd5 Nav: fixed absolute mouse position (with NavEnableSetMousePos config flag) when using Home/End leads to scrolling. c363b6df Modals: fixed issue hovering popups inside a child inside a modal. Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676)(#4676, #4527) 0f2898ea Demo: Tree selection demo use !IsItemToggledOpen() (#1896) + update FAQ (#4366) 99552420 InputText: triple-click avoid scroll + include end of line character. (#2244) 126a6f89 InputText: made double-click select word, triple-line select line. Word delimitation logic differs slightly from the one used by CTRL+arrows. (#2244) 9c78fc92 Inputs: Mouse: Amend c8e3a01 for tracking multiple clicks, renaming. (#3229) 2318c764 Inputs: Mouse: Add support for tracking multiple clicks more than just double (#3229) 39b99072 ImVector: fix Clang warning (implicit conversion changes signedness: 'const ptrdiff_t' (aka 'const long long') to 'unsigned long long') ad3f54ff Examples: Emscripten comments (#4650, #4662), standardize readme 19c3773c Backends: Vulkan: Call vkCmdSetScissor() with a full-viewport at end of render. (#4644) bbd5119a Backends: Vulkan: comments about user using VK_DYNAMIC_STATE_VIEWPORT / VK_DYNAMIC_STATE_SCISSOR and not calling vkCmdSetViewport() / vkCmdSetScissor(). (#4644) e3bd9434 1.86 WIP + internals: tweaks table temp data code. 13cdf2ff CI: Add MinGW DLL builds, be03b8ff Misc: Fix build with MinGW when using IMGUI_API. git-subtree-dir: lib/imgui git-subtree-split: a8df192df022ed6ac447e7b7ada718c4c4824b41
…with larger ranges (not fully tested) + clipper tweaks (#3609, #3962 + ocornut/imgui_club#20) This does NOT fix all problems with large ranges and floating point precision, it merely attenuate them.
… clipper. (#3609, #3962 + ocornut/imgui_club#20)
…range are large. (#3609, #3962 + ocornut/imgui_club#20)
a8df192d Version 1.89.1 27c58c39 Scrolling, Focus, Combo: fixed SetKeyboardFocusHere()/SetItemDefaultFocus()/ScrollToRectEx() during an appearing form not centering item. (#5902, #2812, #4242, #2900) 233d7ad3 Backends: WebGPU: fixed validation error with default depth buffer settings. (#5869, #5914) 856c6314 Drag and Drop: fixed GetDragDropPayload() returning a non-NULL value before payload is submitted. (#5910, #143) ffe0abbf Internals: added basic localization system (#5895) c3d9f8ee Layout: fixed End()/EndChild() incorrectly asserting if users manipulates cursor position inside a collapsed/culled window and IMGUI_DISABLE_OBSOLETE_FUNCTIONS is enabled. (#5548, #5911) 3a685749 ColorEdit: fixed label overlapping when using style.ColorButtonPosition == ImGuiDir_Left. (#5912) 16476f99 Backends: GLFW: cancel out errors emitted by glfwGetKeyName() when a name is missing. (#5908) 5bb28749 Version 1.89.1 WIP 7bee9a8f Inputs: fixed moving a window or drag and dropping from preventing input-owner-unaware code from accessing keys. (#5888, #4921, #456) d60985df Inputs: fix moving a window or drag and dropping from capture mods. (#5888, #4921, #456) 83cee9e0 InputText: replaced some uses of SetKeyOwner() + IsKeyPressed() with Shortcut() 81160fee Version 1.89 a582d92c Inputs: modulate wheel lock timer for small amount of wheeling. Slightly lower timer. (#3795) 03d3343e Docs: Update FAQ.md explaining how to enable hidpi for Windows app. (#5880) 00b63708 Backends: WebGPU: fixed rendering when a depth buffer is enabled. (#5869) 7380b981 Scrolling: Exposed SetNextWindowScroll() in public API. (#1526) cda26635 Inputs: refacotr/extract CalcRoutingScore() out of SetShortcutRouting(), easier to follow with early returns. b8b0f9d0 Backends: OpenGL3: Reverted use of glBufferSubData(). (#4468, #4504, #3381, #2981, #4825, #4832, #5127) f0ad8105 Inputs: tweak comments, typos. 637ddfce Inputs, Nav: made it possible to remap CTRL+Tab (#4828, #3255, #5641) 6c9c4879 Inputs: made Shortcut() routing id defaults to current FocusScope ID. (#456, #2637, #3724) d576724b Inputs: made ImGuiInputFlags_RouteFocused the default for Shortcut(). (#456, #2637, #3724) 4d6a9ef9 Inputs: added routing priorities. (#456, #2637, #3724) 7ff2d335 Inputs: added wip/experiment routing system: Shortcut(), RoutingFocused policy, SetShortcutRouting(). (#456, #2637, #3724) c59ebb2d Inputs: added basic Shortcut() function - no routing yet. (#456) 8c95c084 Inputs: changed specs of SetKeyOwner() to alter OwnerCurr immediately. 4448d975 Inputs: added wip/internal Input Owner system. (#456, #2637, #2620, #2891, #3370, #4828, #5108, #5242, #5641) 44d98bfd Fix build with IMGUI_DISABLE_DEBUG_TOOLS 529cba19 Debug Tools: Added DebugLocateItem()/DebugLocateItemOnHover() to visually locate items when hovering a 0xXXXXXXXX value. (#5855, #2673, #4631) 7109f32f Internals: tidying up and stripping more of focus scope code. 9f66a3a9 Internals: rework FocusScope system, current scope doesn't need to be in window + child doesn't inherit. 1eac0024 InputText: copy and select all shortcuts don't need repeat (tho it was harmless0 90e9465f Window: Fixed position not being clamped while auto-resizing (#5843) 6e9dfe1d Window: Auto-fit size takes account of work rectangle (menu bars eating from viewport). (#5843) 86f2af2b Backends: OSX: Fixed mouse coordinate before clicking on the host window. (#5842) c2694ef7 Examples: Android: Using LoadIniSettingsFromMemory() / SaveIniSettingsToMemory() to save in appropriate location for Android. (#5836) 22bcfca7 IO: Clear AppFocusLost in EndFrame() in order to allow backend or application code to poll and react to it a241dc79 IO: Fixed AddFocusEvent(false) to also clear MouseDown[] state. (#4921) a61bbdc2 Commented out redirecting OpenPopupContextItem() which was briefly the name of OpenPopupOnItemClick() from 1.77 to 1.79. 9db6b1a0 Backends: Win32: minor tidying up. (#5819) baea25e6 Drag and Drop: extracted a RenderDragDropTargetRect() function (#1603) 431fc6a7 Internals: using ItemAdd() consistently for internal items: windows & tables resize grips/borders, ScrollbarEx(). 178aee4b Debug Tools: Debug Log: add and use ImGuiTextLineIndex. 578df14f CI: Remove left-over discord stuff. f6bd7c8e Debug Tools: Item Picker: remove IMGUI_DEBUG_TOOL_ITEM_PICKER_EX since it doesn't work on non-ItemHoverable() items anyway. (#2673) bc918404 Internals: using ImToUpper() since std one does too many things. 9a35bfea Internals: added temporary ImGuiItemStatusFlags_Visible (used internally - please do not use). de1593d5 Backends: DX12: Fixed stale comments. (#5798) e3fa56ae BeginMenu(): Menus: Fixed a one-frame issue where SetNextWindowXXX data are not consumed by a BeginMenu(). 5ac94ad8 Window: Fixed an issue where uncollapsed a window would show a scrollbar for a frame. ab6e48b8 Backends: GLFW: Perform a dummy glfwGetError() read to cancel missing mouse cursors errors. (#5785) 08752b37 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. (#5775) 81176737 Menus: Fixed using IsItemHovered()/IsItemClicked() on BeginMenu(). (#5775) 3920b1c7 Removed commented out old flags from when Tables was a branch. b15347cb Tables: activating an ID (e.g. clicking button inside) column doesn't prevent columns output flags from having ImGuiTableColumnFlags_IsHovered set. (#2957) 3e8d1981 Removed runtime patching of obsolete/invalid "%f"/"%.0f" types of format strings for DragInt()/SliderInt(). 5196bd15 Docs: Update outdated code sample (#5766) c54230d1 Backends: Using nullptr instead of NULL. (#5760, #4537) + fix additional warnings. 8a44c31c Scrolling: Further reduce unrelease mouse-wheel locked window timer + misc refactor (#2604, #3795, #4559) dfa1bb0a Backends: OSX: Fixed mouse inputs on flipped views. (#5756) 85a368b5 Fixed ImGuiWindowFlags_UnsavedDocument clipping label in docked windows with no close button. (#5745) c7d3d22a Scrolling: Mitigated issue where multi-axis mouse-wheel inputs (usually from touch pad events) are incorrectly locking scrolling in a parent window. (#4559, #3795, #2604) 80a870a3 Scrolling: Tweak mouse-wheel locked window timer so it is shorter but also gets reset whenever scrolling again (#2604) + small refactor 282b2b5a Backends: Vulkan: Fix building with VK_NO_PROTOTYPES. (#914, #5738). a588f00f Backends: Vulkan: Added experimental ImGui_ImplVulkan_RemoveTexture() for api symetry. (#914, #5738). 58842198 imgui_freetype: Assert if bitmap size exceed chunk size to avoid buffer overflow. (#5731) f2a522d7 ImDrawList: Not using alloca() anymore, lift single polygon size limits. (#5704, #1811) cc5058e5 IO: Filter duplicate input events during the AddXXX() calls. (#5599, #4921) fac8295d IO: remove ImGuiInputEvent::IgnoredAsSame (revert part of 839c3100), will filter earlier in next commit. (#5599) 9e7f460c Fixed GetKeyName() for ImGuiMod_XXX values, made invalid MousePos display in log nicer. (#4921, #456) 07494533 Menus, Nav: Fixed not being able to close a menu with Left arrow when parent is not a popup. (#5730) 9f6aae3b Nav: Fixed race condition pressing Esc during popup opening frame causing crash. bd2355a0 Menus, Nav: Fixed using left/right navigation when appending to an existing menu (multiple BeginMenu() call with same names). (#1207) 3532ed16 Menus, Nav: Fixed keyboard/gamepad navigation occasionally erroneously landing on menu-item in parent when the parent is not a popup. (#5730) d5d70506 Various comments e74a50f5 Added GetGlyphRangesGreek() helper for Greek & Coptic glyph range. (#5676, #5727) d17627b9 InputText: leave state->Flags uncleared for the purpose of backends emitting an on-screen keyboard for passwords. (#5724) 0a7054c7 Backends: Win32: Convert WM_CHAR values with MultiByteToWideChar() when window class was registered as MBCS (not Unicode). (#5725, #1807, #471, #2815, #1060) a229a7f3 Examples: Win32: Always use RegisterClassW() to ensure windows are Unicode. (#5725) e0330c16 Fonts, Text: Fixed wrapped-text not doing a fast-forward on lines above the clipping region. (#5720) 4d4889bf Refactor CalcWordWrapPositionA() to take on the responsability of minimum character display. Add CalcWordWrapNextLineStartA(), simplify caller code. 5c4426c5 Demo: Fixed Log & Console from losing scrolling position with Auto-Scroll when child is clipped. (#5721) 12c02468 Removed support for 1.42-era IMGUI_DISABLE_INCLUDE_IMCONFIG_H / IMGUI_INCLUDE_IMCONFIG_H. (#255) 73efcec5 Examples: disable GL related warnings on Mac + amend to ignore list. a725db17 Comments for flags discoverability + add to debug log (#3795, #4559) 325299f9 Backends: OpenGL: Add ability to #define IMGUI_IMPL_OPENGL_DEBUG. (#4468, #4825, #4832, #5127, #5655, #5709) 56c3eaed ImDrawList: asserting on incorrect value for CurveTessellationTol (#5713) 04316bd2 ColorEdit3: fixed id collision leading to an assertion. (#5707) c261dac0 Demo: moved ShowUserGuide() lower in the file, to make main demo entry point more visible + fix using IMGUI_DEBUG_LOG() macros in if/else. 51bbc706 Backends: SDL: Disable SDL 2.0.22 new "auto capture" which prevents drag and drop across windows, and don't capture mouse when drag and dropping. (#5710) 7a9045dd Backends: WGPU: removed Emscripten version check (currently failing on CI, ensure why, and tbh its redundant/unnecessary with changes of wgpu api nowadays) 83a0030c Added ImGuiMod_Shortcut which is ImGuiMod_Super on Mac and ImGuiMod_Ctrl otherwise. (#456) fd408c97 Renamed and merged keyboard modifiers key enums and flags into a same set:. ImGuiKey_ModXXX -> ImGuiMod_XXX and ImGuiModFlags_XXX -> ImGuiMod_XXX. (#4921, #456) f359dca0 Misc input related changes to facilitate upcoming merges. 85f327d8 InputText: added ImGuiInputTextFlags_EscapeClearsAll (#5688) 60ab8a94 InputText: fixed minor one-frame selection glitch when reverting with Escape + disable cursor rendering on revert frame. (#3008) 4b522e14 Experiment: ImGuiKey is now a typed enum, allowing ImGuiKey_XXX symbols to be named in debuggers. (#4921, #4537) 5c8041b4 Update gif in README + font names in examples 2736af6b Minor optimization of ImFontAtlasBuildMultiplyRectAlpha8() + README tweaks. efe4a372 Fix typo (#5691) 1dd964f8 Popups & Modals: Fix (amended) somehow undocumented Popup+Child behavior (useful for e.g. #718, #4461 and probably other things) 440f2576 Popups & Modals: fixed nested Begin() being erroneously input-inhibited. (useful for e.g. #718, #4461 and probably other things) 472f8013 Moved version number higher up in imgui.h to increase visibility 2b1d8e3e Fix more typos in sources and docs (#5681) 44e3ba11 Demo: moved "Mouse Cursors" section. moved "Filtering" section. 673df619 More compact README 1816c524 Examples: updated VS projects with .natvis file under imgui/ e8178bf8 Update README.md a0e1591a Fix more typos (#5679) 6c3c9cea Fix typos in source comments (#5675) 091445a4 Examples: added all SDL examples to VS solution. 513c1ba9 Removed the bizarre legacy default argument for 'TreePush(const void* ptr = NULL)' (#1057) cb48c81a Tabs: Fix initial tab state. Amend 3e6f948( (#5572) 52d9ee0d Tabs: Fixed ShrinkWidths() redistribution of remainder leading to infinite bug (second fix). (#5652, #5262) 3e6f9488 Tabs: Enforcing minimum size of 1.0f, fixed asserting on zero-tab widths. (#5572) b137f31b Tabs: Fixed ShrinkWidths() redistribution of remainder leading to infinite bug + over redistribution. (#5652) 2171375f InputText: clarified that callbacks cannot modify buffer when using the ReadOnly flag. 9e7c0f98 Fix typos in docs (#5649) b87e58fa ImGui::InputText: added support for shift+click style selection. (#5619) fe62927b Backends: OpenGL: Update comments. (#4445, #5642, #4649) 9e1ccf8f Commented out redirecting functions/enums names that were marked obsolete in 1.77 and 1.78 (June 2020): (#3361) edcd5b11 Obsoleted using SetCursorPos()/SetCursorScreenPos() to extend parent window/cell boundaries. (#5548) 5867a43d Backends: GLFW: Honor GLFW_CURSOR_DISABLED by not setting mouse position. (#5625) 9445776d Nav: Fixed an issue opening a menu with Right key from a non-menu window. 03fc9a0b Menus: Fixed gaps in closing logic. (#5614) b3ea01d8 Menus: Fix sub-menu inhibition stopping working in some cases. (Amend WIP) (#2517, #5614, noticed in #5546) a502ceb0 Added commented out older obsolete names (1.42 to 1.52) 2569c647 Demo: Improved "Constrained-resizing window" example, more clearly showcase aspect-ratio. (#5627, #5618) 7f251439 Better error reporting for PopStyleColor()/PopStyleVar() + easier to recover. (#1651) 747c9a7a IsKeyPressed(), IsMouseClicked(), GetKeyPressedAmount(): add a (normally unnecessary) test for ->Down next to ->DownDuration tests, facilitating the use of key eating mechanism. e13913ed IsItemHovered: Added ImGuiHoveredFlags_DelayNormal, ImGuiHoveredFlags_DelayShort, ImGuiHoveredFlags_NoSharedDelay. (#1485) b3b3a071 Nav: Fixed regression in e99c4fc preventing CTR+Tab to work without NavEnableKeyboard (#5504, #4023); 2c1262b4 ImVector: fix undefined behaviour during copy operator if source vector is null. (#5608) 72096bf6 Clipper: simplify code and remove cases where true is returned with empty display range as an extra step. 07b9999d Debug Log: added 'Clipper' events logging. 4eb90669 Clipper: extract code into a ImGuiListClipper_StepInternal() to facilitate debugging. Moved clipper End() call to outer layer, stopped heretic use of comma operator. 21b5fac5 Backends: Metal: Update deprecated property 'sampleCount'->'rasterSampleCount' (#5603) d357e850 TestEngine: revert part of 5b0510c as IMGUI_TEST_ENGINE_ITEM_ADD() woul see an erreneous hierarchy. 7f4b477d CI: Update ubuntu version (#5598) cdebd70e Fix PVS-Studio static analyzer warning for "buffer underflow" 5b0510c5 TestEngine: facilitate aiming at InputScalar() using wildcards + removed unnecessary IDStack.size hack (require TestEngine latest) ef6ba0d8 Misc: allowing override of IM_TABSIZE (#5593) 26856507 InputText: numerical fields automatically accept full-width characters (U+FF01..U+FF5E) by converting them to half-width (U+0021..U+007E). a396233c Platform IME: Windows: Revert 133bbafa and 29a8ee08 as regression until new results comes. (#2589, #5535, #5264, #4972) 839c3100 Debug Log: Added IO events logging. 133bbafa Platform IME: Windows: Fixed a call to ImmAssociateContextEx() leading to freeze on some setups. (#2589, #5535, #5264, #4972) c911901b Fix ImGuiIO docs and default values (#5540) 0a4ddd72 Fix being unable to mouse wheel while dragging a payload (fix 1480bc5, #4921, #2891) 4a2ae06c Changed signature of ImageButton() function: Added 'const char* str_id' parameter + removed 'int frame_padding = -1' parameter. (#5533, #4471, #2464, #1390). 0e95cf0d Fix appending to windows causing a child window to be inserted to g.WindowsFocusOrder which eventually causes a crash. (#5515, #3496, #4797) e926a664 TabBar: Allow closing entire TabBar (possible docking only) when it contains user-appended buttons. (#5515) e99c4fc6 Nav: fixes keyboard/gamepad nav actions running without the corresponding config flags (#5504). Fixes 8b8a61b. #4921, #4858, #787, #1599, #323) 2d38bc99 Internals: renamed recently added ImGuiInputReadFlags to ImGuiInputFlags. (Amend 8b8a61b) 6ab5fd1d Tables,Columns: fixed a layout issue where SameLine() prior to a row change would set the next row in such state where subsequent SameLine() would move back to previous row. 8731cc29 Examples: Vulkan: Add c++ version to CMakeLists (#5459) 1480bc5d Added ImGuiKey_MouseXXX aliases. (#4921) Reworked SetItemUsingMouseWheel() to use this for ActiveId. (#2891) 105bb3ef Legacy: clear g.ActiveIdUsingNavInputMask when active id is clear + Internals: added helpers GetKeyChordName(), ImGuiModFlags_All. 8b8a61bd Removed io.NavInputs[] and ImGuiNavInput enum. Kept inline redirection code. (#4921, #4858, #787, #1599, #323) a7a25ee1 Tools: Item Picker: Mouse button can be changed by holding Ctrl+Shift. (#2673) 92d0924b Fixed build with IMGUI_DISABLE_OBSOLETE_KEYIO + made all examples comments refer to StyleColorsLight(). 4711b9b0 Add trailing commas to enum (to simplify the diff/patch of further additions) (#4537) 90ef3278 Reordered keys representing directions to follow a consistent L/R/U/D order everywhere. (#2625, #4921, #3724) f9ccdba3 Nav: Fix regression 93f02ee + Internals: Remove ImGuiNavReadMode_Pressed, ImGuiNavReadMode_Released. 93f02ee0 Nav: Fixed moving window with gamepad or keyboard when running at very high framerate + removed ImGuiNavDirSourceFlags_RawKeyboard. 82e10f1b Backends: Metal: Add dispatch synchronization. (#5447) 0b2da679 Internals: clarified that GetInputTextState(0) can not return a pointer. Replaced a use of __APPLE__ with io.ConfigMacOSXBehaviors. 467a1cd4 Misc: io.Framerate moving average now converge in 60 frames instead of 120. (#5236, #4138) 67410d53 Backends: Metal, OSX: Various fixes (ARC / Autorelease fixes with metal-cpp and extensions). (#5403) 609b935a InputText: added experimental io.ConfigInputTextEnterKeepActive feature to make pressing Enter keep the input active and select all text. 0afc6cd3 Internals: InputTextEx() renames for correctness. enter_pressed -> validated, is_validate_enter -> is_enter_pressed 873e9d35 Internals: renamed TreeNodeBehaviorIsOpen() to TreeNodeUpdateNextOpen(). Added internal TreeNodeSetOpen(id). (#5423) 24dfe6db Version 1.89 WIP 088ddef9 Tables: extracted some code into TableBeginContextMenuPopup() for easier reuse for appending into context menu. 9aae45eb Version 1.88 d51e5d28 TabItem: revert support for SetNextItemOpen(true) at it creates too much ambiguity with p_open/close button vs Selected state. (#5262) c4b91017 TabBar: Tweak shrinking policy so that while resizing tabs that don't need shrinking keep their initial width more precisely. 4b972961 TabBar: TabItem() now reacts to SetNextItemWidth() and SetNextItemOpen(true). (#5262) d3fd2630 Sliders: An initial click within the knob/grab doesn't shift its position. (#1946, #5328) + Adjust default GrabMinSize. f27af1b2 Internals: SliderBehaviorT: Minor refactor, clearer 0.0/1.0 early out. Should be no-op from user's point of view. 90e8404a Update README.md 37a07858 Nav: Fixed inability to cancel nav in modal popups. (#5400) 07efd7cc Renamed IMGUI_DISABLE_METRICS_WINDOW to IMGUI_DISABLE_DEBUG_TOOLS. 08572189 MovingWindow auto-cancelled if active id is stolen (instead of ill-defined bahavior + assert in docking). 27343efb Nav, Focus: Changed SetKeyboardFocusHere() to not behave if a drag or window moving is in progress + move KeepAliveID() call from Scrollbar() to ScrollbarEx() ddcff103 Settings: Fixed some SetNextWindowPos/SetNextWindowSize API calls not marking settings as dirty. 6cac48df Drag, Slider: rework slightly or CTRL+Click or SetKeyboardFocusHere() will show 1 change of active id in the log (rather than a set,clear,set sequence) dd285008 Debug: Add more log. Reworked IMGUI_DEBUG_PRINT IMGUI_DEBUG_PRINTF. Added internal IsDragDropActive() helper. 2ed9e21e Nav, Internals: wrap changes to g.NavWindow into a helper function to help track/log changes. 1d6e34f3 Debug: Added ShowDebugLogWindow(). ec2c805e Backends: support for unity builds for dx10/dx11/dx12 backends (#5387) 076d8fc8 Nav: Fixed issues with nav request being transferred to another window when calling SetKeyboardFocusHere() and simultaneous changing window focus. (#4449) 0b1bcfcc Menus: Separate menu sets by nav layer. (#3496, #4797) + Demo: Remove incorrect and useless suggestion to use PushID(). a35e8769 InputText: Amends and tidying up: Fixed undo/redo state corruption when editing buffer in user callback. (#4947, #4949) 530332df InputText: Fixed undo/redo state corruption when editing buffer in user callback. (#4947, #4949) 23a785ae Internals: wrapped used of g.TempBuffer into ImFormatStringToTempBuffer/ImFormatStringToTempBufferV helpers. 64d6c305 InputText: Fixed an undo-state corruption issue when editing buffer before reactivating item. (#4947) + Metrics: Added "InputText" section. 74f02703 Misc comments + Demo: use IsItemVisible() when using direct ImDrawList calls. 65c4c0a4 IO: Added SetAppAcceptingEvents() function (#4921, #4858) 17b8c3b6 Demo: Removed redundant window flag (#5367) 7354009a Backends: Metal: Fixed null dereference inside command buffer completion handler. (#5363, #5365) 74f7ac04 Misc: Fix font compressor utility warnings. (#5359) f58bd817 Tables: Fix drawcall merging of last column. (#4843, #4844) e23c5edd Settings: Fixed out-of-bounds read when .ini file on disk is empty. (#5351) 697ce2d6 InputText: Fixed a one-frame display glitch where pressing Escape to revert after a deletion would lead to small garbage being displayed for one frame. (#3008) 5139fb7e Docs: Add index ae2fb557 Docs: Update templates with link to Contributing guidelines. Add numerical version number in demo. Moved. (#5337) 814ecedd Docs: creates CONTRIBUTING.md (#5337) e5b2286c Backends: OpenGL3: Fix apple TARGET_OS_* not defined warning. (#5321) ca222d30 Backends: OpenGL: Partially revert 1.86 change of using glBufferSubData(): now only done on Intel GPUs. (#4468, #3381, #2981, #4825, #4832, #5127) 7bf07d25 Renamed CaptureMouseFromApp() and CaptureKeyboardFromApp() to SetNextFrameWantCaptureMouse() and SetNextFrameWantCaptureKeyboard(). Added demo. (#5304, #4831, #4480, #533) cb56b0b2 Removed leftover KeepAliveID() call in GetIDWithSeed() variant. (#5181) + doc tweaks. e346059e IO: Fixed input queue trickling of mouse wheel events. (#4921, #4821) 60bea052 Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states. (amends) b7686a88 Backends: OpenGL3: Fix state corruption on OpenGL ES 2.0 due to not preserving GL_ELEMENT_ARRAY_BUFFER_BINDING and vertex attribute states. 507a8735 DrawList: Circles disappear when using a radius < 0.5f (#3491) 9e0517a1 DrawList: Fixed divide-by-zero or glitches with Radius/Rounding values close to zero. (#5249, #5293, #3491) 9779cc2f Internals: shallow changes to simplify diff of upcoming commits. Should have no side-effect. 4db55f88 Changed FONT.md edit to blob (#5290) d768b8c8 Backends: Metal: Align code more closely with other backends. OSX: Add missing return for mouse pos events. 55f89893 Docs update, binaries link + Backend: Allegro: fix warning (#5281) 6d27fecc Debug: added DebugTextEncoding() to help diagnose between text encoding issues and font loading issues. Simplified code + extracted DebugNodeFontGlyph(). e6688908 Debug: added encoding viewer in Metrics. e66fc220 Backends: OSX: Removed ImGui_ImplOSX_HandleEvent() from backend API. Move event tracking (desktop only) to OSX backend. (#4821) 26f81780 Backends: Vulkan: Don't use VK_PRESENT_MODE_MAX_ENUM_KHR as specs state it isn't part of the API. (#5254) d58b8414 Backends: OSX, Metal: Tweaks. Use preferred method of obtaining a timestamp. (#4821) 3e5dde9a Tables: Fixed incorrect auto-fit of parent windows when using non-resizable weighted columns. (#5276) 709bc03d Backends: GLFW: fixed ImGui_ImplGlfw_TranslateUntranslatedKey() for lower case letters on OSX (#5260, #5261) 314c7bd1 Internals: renamed ImGuiInputReadMode to ImGuiNavReadMode (internals) to avoid ambiguity with upcoming flags. + minor tweak e54db4ee Backends: OSX, Metal: Store backend data in a per-context struct, allowing to use these backends with multiple contexts. (#5203, #5221, #4141) 04689979 Examples: Emscripten+WebGPU: Fix for latest spec rename of WGPURenderPassColorAttachment::clearColor to ::clearValue (#3632) b5b704d3 Windows: Fixed first-time windows appearing in negative coordinates. (#5215, #3414) 5b29d147 Layout: Fixed mixing up SameLine() and SetCursorPos() together. SameLine() is a stateful. eda7792b Internals: swapped blocks in TextEx() to make it easier to step through common cases. Tweak demo. 28b2089e Internals: moved ItemSize() variant to inline + comment. + Tidying up todo list (#5191) 14ca75d4 Backends: SDL, OpenGL3: Small fixes for AmigaOS4. (#5190) + Allow redefining IM_COL32_XXX layout macros. (#5190, #767, #844) 088487a3 Nav: Fixed nav movement in a scope with only one disabled item from focusing the disabled item. (#5189) fc203c7d Minor fix to sastisfy PVS-Studio warning. (amend, 3nd attempt: this is a false positive from PVS studio) 6d15a506 Internals: removed GetIDNoKeepAlive() now that it is the same as GetID(). (#5181) 90386780 Misc: Fixed calling GetID("label") _before_ a widget emitting this item inside a group (such as InputInt()) from causing an assertion when closing the group. (#5181). 937d0733 Updated comment about Edit.NavigateTo to Edit.GoToAll. (#5179) f7f30476 Added comments about requirement for bilinear filtering. (#5156, #3245) + Backends: SDL_Renderer: Explicitely call SDL_SetTextureScaleMode(). (#4927) 2c03aac6 Renamed ImGuiKeyModFlags to ImGuiModFlags (Breaking but technically never advertised type) a472e883 InputScalar: Automatically allow hexadecimal/scientific input when format is adequate. c521883b Sliders, Drags: Fixed manual input when using hexadecimal display format string. (#5165, #3133) 508c9aaf Sliders, Drags: Fixed using hexadecimal display format strings (pretty much never worked). (#5165, #3133) f5c5926f Internals: remove obsolete variants of RenderArrow(), RenderBullet(), ImHash() + misc comments. 88fbc31e stb_truetype: fix a division by zero (unused chain of result, but triggering debuggers). (#5139, #5075) 2747a8ca Turned ImVec2 to const ref to RenderChar(), RenderText(), ColorButton(), PushClipRect(). for consistency. Comments about polygon filling winding order. 0dec4307 Menus: Adjusted BeginMenu() closing logic so hovering void or non-MenuItem() in parent window always lead to menu closure. 2d76b09d Backends: Metal: Conditional check, amend 7602277 (#5122, #5123) 1ba29050 Update README, quote, mission statement 3587ee49 Viewports: store Viewport field in ImGuiWindow to facilitate using code accross branches + fix PVS warnings. dfbe938e InputText: Fixed pressing Tab emitting two tabs characters. (#2467, #1336) 16ddc169 Fixed creating multiple-context (regression in 28ba54a). (#5135) 1ad8ad62 Backends: GLFW: Fixed keyboard modifiers events being reported incorrectly on Linux/X11. 7d7bf993 ImDrawList: Fix texture-based anti-aliasing with RGBA textures (#5132, #3245) 3c078795 Backends: OSX: Inputs: Monitor NSKeyUp events to catch missing keyUp for key when user press Cmd + key (#5128) c5f67218 Backends: SDL: Fix multi-viewport dragging issue with SDL on some systems. (v2 for master, using bd->MouseButtonsDown == 0) (#5012, #5082) 7602277c Backends: Metal: Remove weak ref (#5122, #5123) 31e77eac Backends: SDL: Add extra mouse buttons handling (#5125) 6fae2967 Examples: Emscripten: Fix build. (#3632) 28ba54a3 Internals: add AddSettingsHandler(), RemoveSettingsHandler(). fd06ed83 Misc: tweaks + fix warnings on backends withtout -wno-memaccess (#4995, #5104) 0cff5ac5 Updated stb_textedit.h from 1.20 to 1.26 (many fixes). (#5075) de451d44 Updated stb_textedit.h from 1.13 to 1.14. (#5075) 279db558 Updated stb_rect_pack.h from 1.00 to 1.01. (#5075) 3deb92c2 Add IMGUI_STB_SPRINTF_FILENAME to support custom stb_printf.h include path (#5068, #2954) 0f149335 Tables: Fixed incorrect border height used for logic when resizing one of several synchronized instance of a same table ID, when instances have a different height. (#3955, #3565) 6315716f Backends: Glut: Fix comparison operator precedence. 1e18da5c Backends, Examples: Add comments about using WndProc handler and WantCaptureXXX flags. (#5061) 54fb051e ColorEdit: Fixed text baseline alignment after a SameLine() after a ColorEdit() with visible label. fa2b318d IO: Fixed input queue trickling of interleaved keys/chars events when InputText() is not active. (#4921, #4858) 5659db55 IO: Fixed backward-compatibility accesses to io.KeysDown[]. (#4921, #4858) a61ca097 Backends: OSX: Fix typo in scrolling event handler. (#5036) dca527be Clipper: Assert on extraneous calls to Step(). (#4822) + Demo tweak. 29d462eb Set HoveredID even when g.NavDisableMouseHover is set by gamepad/keyboard navigation. This will facilitate the use of future InputOwner API based on HoveredID/ActiveID. 421e73e6 Fix an assert in metrics. d9e60d29 Clipper: Fixed a regresssion when not calling End() + calling End() twice as well. (#4822) 5c8f8d03 ImVector: Fixed erase() with empty range. (#5009) amend/fix b6b8f66 2dfa71fa Inputs: Fixed IsMouseClicked() repeat mode rate being half of keyboard repeat rate. Using KeyModAlt. Removed KeyModsPrev. 7ff41a78 Fonts: binary_to_compressed_c.cpp gained -nostatic option (#5021) 8d390636 CI: Fixes for OSX + explicitely request C++11. b6b8f663 ImVector: Fixed erase() with empty range. (#5009) 5854da10 Declare other structures as constexpr (#4995) + rename ImGuiInputEventType_Char to ImGuiInputEventType_Text for consistency with event structure. 71f98dd0 Declare ImVec2 and ImVec4 constructors as constexpr (#4995) 955aacfb GCC: Disable deprecated-enum-enum-conversion for gcc as well (#4997) 4691fa0e ImDrawList: PthArcTo: Add small tolerance when comparing angles (#4993) aa79d0cd Stack Tool: Added option to copy item path to clipboard. (#4631) 88de9820 Version 1.88 WIP 97b1abd6 Internals: rework RenderMouseCursor() signature so we can use it in docking branch more naturally. c71a50de Version 1.87 e52bb147 Backends: GLFW: Added ImGui_ImplGlfw_InstallCallbacks()/ImGui_ImplGlfw_RestoreCallbacks(). (#4981) 732bc205 Backends: GLFW: Handle spurious leave/enter sequences apparently submitted by X11/GLFW combo. (#4984) 40fd163a Backends: OpenGL3: Fix OpenGL ES2 includes on Apple systems. 2554b512 Backends: OSX: Forward keyDown/keyUp events to OS when unused by Dear ImGui. c6cab1f3 Backends: SDL: Added SDL_Renderer* parameter to ImGui_ImplSDL2_InitForSDLRenderer(). Use SDL_GetRendererOutputSize() instead of SDL_GL_GetDrawableSize() when bound to a SDL_Renderer. (#4927) c39192ba Backends: SDL_Renderer: Fix texture atlas format on big-endian hardware (#4927) 43177324 Backends: GLFW: Fixed miss untranslation of keypad keys. (#4921, #452) 6f73dbea TestEngine: submit window data to item system. 35e197f4 TestEngine: fixed InvisibleButton() and ArrowButton() not calling the info macro. 551ab84c Backends: OSX: Fix building with old Xcode versions. 422902db Correct typos (#4954, #4955), use IM_STATIC_ASSERT now that old pre-C++11 macro has been obsoleted. 64d910ad Removed IMGUI_API from inline templated classes. (#4962) 49e38a5b Revert moving ImGuiKeyModFlags to internal.h (amendc906c65) 9def2b04 IO: Added simple (incomplete) filter for duplicates to reduce data spam. (#4921, #4858) 5429f0f6 Backends: OSX, Android: Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. (#4921, #4858) c906c65c (BREAKING) Replaced AddKeyModsEvent() added by 790132a in favor of unified key enum system. Backends: update most. (#4921, #4858) 718daa15 Rendering: defer responsability of calling _PopUnusedDrawCmd() later so RenderDimmedBackgrounds()/RenderMouseCursor() don't need to deal with the side-effects (#4857, #4317) 075f4ac6 Don't merge ImDrawCmd which have had their IdxOffset changed to not be sequential. Fixed CTRL+Tab into an empty window causing artefacts on the highlight rectangle due to bad reordering on ImDrawCmd. 85553359 Shallow alignment of ImGuiKey stuff + moving some in internals. Internals: add offset to ImBitArray<>, simpify ActiveIdUsingKeyInputMask. 08f3aa89 Popups: Fix b17b2fb (#4936) 4caf1e9b Backends: GLFW: fix ImGui_ImplGlfw_TranslateUntranslatedKey() for grave accents. (#456, #2625) + fix preceeding commit. b17b2fb7 Popups: Fixed an issue when reopening a same popup multiple times would offset them by 1 pixel on the right. (#4936) cda3db14 Backends: SDL: Fixed key mapping for ImGuiKey_Menu (#4921) + misc typos (#4928) dd6a44ab Fix compiler warning for Intel compiler (#4934) 4fb0c1f9 Correct some typos in FAQ.md (#4924) cff03424 Internals: moved lines into a Inputs section. c2db4c24 Demo: draw a section of keyboard in "Inputs > Keyboard, Gamepad & Navigation state" to visualize keys. 69b69737 Comments, tweaks. 26e59c87 Nav: Fixed gamepad navigation in wrapping popups not wrapping all the way. (#4365) 62d6be37 IO: Removed ImGuiInputSource from public api for now, unnecessary. (#4858, #787) 5ea47d95 Backends: OSX: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 39c3412f Backends: SDL: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 3d854337 Backends: GLFW: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) 9f8c599c Backends: Win32: Add full gamepad support using io.AddKeyEvent(), io.AddKeyAnalogEvent(), stopped writing to io.NavInputs[]. (#4858, #787) f33bb998 IO: added AddKeyAnalogEvent() and support for ImGuiKey_GamepadXXXX. (#4858, #787) 6e63fcac Backends: Vulkan: Amends, fix miscast on 32-bit systems with the right ImTextureID=ImU64. (#914) ceb26bac Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, amends. (#914) 29f10431 Backends: Vulkan: Added support for ImTextureID as VkDescriptorSet, add ImGui_ImplVulkan_AddTexture(). (#914) 19471da3 Popups: Fix a crash when a new window is created after a modal on the same frame. (#4920) 7ad42ff4 IO: renamed io.ConfigInputEventQueue to io.ConfigInputTrickleEventQueue. (#4858) 26d04c94 Tables: Fixed positioning of Sort icon on right-most column with some settings (not resizable + no borders). (#4918). 97b1ffcb IO: Reorder enums, compact a little in header. Removed const from internal GetKeyData(). 91ae56af Removed support for legacy arithmetic operators (+*/) when inputing text into a slider/drag. (#4917, #3184) 673f5e58 IO: moved fields to put more focus on the new functions + update misc docs/references + update main.mm in Apple+Metal example (#4858) 90a69616 IO: apply same flooring as UpdateMouseInputs() in dupe event processing. (#4858) + provision for test engine. 7374b96f IO: Added input queue. (#4858, #2787, #1992, #3383, #2525, #1320) b8e56dce IO: Added AddMousePosEvent(), AddMouseButtonEvent(), AddMouseWheelEvent() api + updated all Backends. (#4858) (input queue code will be next commit) b6582a47 Backends: OSX: Fix Game Controller nav mapping to use shoulder for both focusing and tweak speed. (#4759) 92c4ff1c Rename ImGuiKey_LeftControl to ImGuiKey_LeftCtrl, ImGuiKey_RightControl to ImGuiKey_RightCtrl + made key order match mods order. (#4858) 07557674 Backends: move io.AddKeyModsEvent() next to io.AddKeyEvent() submission, rely on mods from platform/source. (#4858) + fix #2622 again broken by 746c9f7 eb823655 Removed support for pre-C++11 compilers. We'll stop supporting VS2010. (#4537) f84c93d8 Update BACKENDS.md (#4909) 45c4365e Backends: GLFW: glfwGetKeyName is not implemented in emscripten (#4907, #4858) 6188e941 Examples: Vulkan: fill Subpass and MSAASamples to increase discoverability (#4886) + IO docs update (#4858) 553b0488 Backends: SDL: Fix for Emscriptem. Amend 98ce013. 95516356 IO: fix SetKeyEventNativeData() not handling ImGuiKey_None the same way as AddKeyEvent(). (#4905, #4858) 200a8f1e Backends: GLFW: Update mouse inputs using glfwSetCursorPosCallback() (breaking) + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons. 98ce0132 Backends: SDL: Update mouse inputs using SDL_MOUSEMOTION/SDL_WINDOWEVENT_LEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before MouseButtons. bf4de2a4 Backends: Win32: Update mouse inputs using WM_MOUSEMOVE/WM_MOUSELEAVE + fallback to provide it when focused but not hovered/captured + update MousePos before Key Modifiers. 7f8a89c2 Backends: Win32, SDL: maintain MouseButtonsDown instead of using IsAnyMouseDown(). Internals: added GetInputSourceName(). 457d4b7b Backends: OSX: Adedd basic IME support for macOS. (#3108, #2598) 290c5173 Fixed warning in ImFloorSigned(). (#4889) 0818a423 Backend: WebGPU: Fixed incorrect size parameters in WGPU backend (#4891) 96186a93 Typo correction in imgui_demo.cpp (#4892) 956e0300 Backends: OSX: Build fIx. Made GetKeyName() input tolerant. Internals: added GetNavInputName(). e8172fdf Rename io.AddKeyModEvent() -> io.AddKeyModsEvent() and updated backends accordingly. (#2625, #4858) b2e2cc44 Backends: OSX: Fixed typo. 790132a6 Added io.AddKeyModEvent() and updated backends accordingly. (#2625, #4858) 1797135d Backends: Android: Update to use io.AddEventKey() will full key map (#2625, #4858) ee436aa8 Backends: OSX: Update to use io.AddEventKey() will full key map (#2625, #1873, #4858) da1864d7 Backends: GLUT: Update to use io.AddEventKey() will full key map (#2625, #4858) 1bfe4a75 Backends: Allegro5: Update to use io.AddEventKey() will full key map (#2625, #4858) fe646ea5 Backends: SDL2: Update to use io.AddEventKey() will full key map (#2625, #4858) + created localized key (using keycode instead of scancode) (#456) ecd212c0 Backends: GLFW: Update to use io.AddEventKey() will full key map (#2625, #4858) 746c9f76 Backends: Win32: Update to use io.AddEventKey() will full key map (#2625, #4858) bf08c13e Inputs: Extra Keys / AddKeyEvent(): bidirectional mapping, basic CI, simplify backends, asserts on misuses, tested backward compat. (#2625, #4858, #2787) 3b669293 Inputs: Extra Keys / AddKeyEvent(): Added ImGuiKey values, io.AddKeyEvent(), GetKeyName(), IMGUI_DISABLE_OBSOLETE_KEYIO. Obsoleted GetKeyIndex(), io.KeyMap[], io.KeysDown[]. (#2625, #4858, #2787) afffcd58 Inputs: rename ImGuiKey_KeyPadEnter > ImGuiKey_KeypadEnter (#2625) 100ede57 Backends: GLFW: Fix CTRL+A, CTRL+Y, CTRL+Z to match keyboard layout. Converting GLFW untranslated keycodes back to translated keycodes. (#456, #2625) 4d023bd7 Fix for using IMGUI_DISABLE_OBSOLETE_FUNCTIONS de36ff04 Platform IME: add ImGuiPlatformImeData::InputLineHeight (unused by win32). (#3113) 29a8ee08 Platform IME: add ImGuiPlatformImeData::WantVisible, hide IME when not used. (#2589) 1cbfe935 Platform IME: [windows] call ImmSetCandidateWindow() to position candidate window. 2706c9d6 Platform IME: reworked internals to simplify adding new features. 3a90dc38 Platform IME: changed io.ImeSetInputScreenPosFn() to io.SetPlatformImeDataFn() API. 04bc0b0b Fix IdxBuffer related comments. (#4845, #4863) 28eabcb0 Internals: refactor: mouse input functions into their own section. 206b9ead IO: removed unused MouseDragMaxDistanceAbs(). Using a shortcut variable in UpdateMouseInputs(). c5a3cae8 Reordered some IO fields. Misc comments. Removed beta marker from tables comments. efa50f72 Backends: Metal: Ignore ImDrawCmd where ElemCount == 0. (#4857) b0a6cd63 Fixed a situation where CTRL+Tab or Modal can occasionally lead to the creation of ImDrawCmd with zero triangles, (#4857) 2402958a Commented out redirecting functions/enums names that were marked obsolete in 1.69, 1.70, 1.71, 1.72 92d7869f Happy new year! 83d22f4e Tables, ImDrawListSplitter: Fixed erroneously stripping trailing ImDrawList::AddCallback().(#4843, #4844) 41e39ea6 Backends: Metal: Add Metal C++ bindings support. (#4824, #4746) dbeea722 Backends: Silence overzealous warnings. (#4834) Add comments about SetDragDropPayload() return value. (#4835) 89a28209 Version 1.87 WIP + Backends: OpenGL3: Fixed a buffer overflow in imgui_impl_opengl3_loader.h init, added in 1.86 (#4468, #4830) 980deb4c Add missing include guard to avoid declaring ImFontAtlasGetBuilderForStbTruetype() function. 512c54bb Version 1.86 612b787b Menus: fixed top-level menu from not consistently using style.PopupRounding. (#4788) 4bad852a Backends: SDL_Renderer: Handle change to SDL_RenderGeometryRaw() function signature in SDL 2.0.19 (#4819) 0636f9ad InputText: fixed Shift+Delete from not cutting into clipboard. (#4818, #1541) d9bc1e44 Backends: Marmalade: Removed obsolete Marmalade backend (imgui_impl_marmalade.cpp) + example. (#368, #375) 0cdc4a95 Backends: Win32: Store left/right variants of Ctrl/Shift/Alt mods in KeysDown[] array. (#2625) 4a43dcb9 Internals: reduced side-effects of setting window->HiddenFramesForRenderOnly > 0 1c4066cd Internals: UpdateWindowInFocusOrderList: amend a528398 to fix docking. (#3496, #4797) 389982eb Backends: OpenGL3: Using buffer orphaning + glBufferSubData(), seems to fix leaks with multi-viewports with some Intel HD drivers.. (#4468, #4504, #2981, #3381) 48f26333 Menus: fixed closing a menu inside a popup/modal. Fixed menu inside a popup/modal not inhibiting hovering of items in the popup/modal. (#3496, #4797) a528398c Internals: support for varying _ChildWindow flag for menu windows. (#3496, #4797) 11638fdf Menus: reuse more menu windows when stacked over popups. 0e8c199e CI: Use regex to fix vcxproj platform and toolset versions. (#3249) Remove Discord integration. d7350668 Fix OSX warnings + Examples/Apple+GL2 calls super reshape. (#4759, #1873) 1b6b8602 Backends: OSX: Fix keyboard support. Handle scroll cancel. Don't set mouse cursor shape unconditionally. (#4759, #4253, #1873) f71ee520 Fix infinite loop in ImFontGlyphRangesBuilder::AddRanges if the user passes upper range = UINT16_MAX without IMGUI_USE_WCHAR32. (#4802) b720f1f0 Backends: OSX: Add Game Controller support. (#4759) 8a9fe268 Menus: fixed closing a menu by clicking on its menu-bar item when inside a popup. (#3496, #4797) c8017992 Added an assertion for the common user mistake of using "" as an identifier at the root level of a window. (#1414, #2562, #2807, #4008, #4158, #4375, #4548, #4657, #4796) a8e1dde3 Fix static analyser, update readme. e03383d0 Fixes for tooltip over modals leading to incorrect modal dimming. (#4729) bdd2a943 InputTextMultiline: fixed vertical tracking with large values of FramePadding.y. (#3781, #4794) 072caa4a InputText: fixed incorrect padding when FrameBorder > 0. (#4794, #3781) 270d4d08 Nav, Docking: Fix crash on dimming docked window and DockSpaceOverViewport() with PassthruCentralNode. a19815dc Backends: Allegro5: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790) c80e8b96 Backends: OpenGL2, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. (#4790) b38af0f5 Popups: Fix popups being closed by newly appearing windows. (#4317) 657073a6 Nav, Docking: fix dimming crash with accessing zero-cmd ImDrawList (amend 1dc3af3, 23ef6c1) 20e040c8 Clipper, Tables: remove table specific code path should now be ok (added assert). 926addbf Clipper: fixed invalid state when number of frozen table row is smaller than ItemCount. 027a7ba3 Clipper: use line size instead of cursor comparaison when range are large. (#3609, #3962 + ocornut/imgui_club#20) a76bc52d Window, Clipper: store initial precision loss and apply in clipper. (#3609, #3962 + ocornut/imgui_club#20) 6e141a9c Internals: made ScrollbarEx() use ImS64 to facilitate use with larger ranges (not fully tested) + clipper tweaks (#3609, #3962 + ocornut/imgui_club#20) eea83613 InputText: fix buffer modifications in callbacks while using resize callback (#4784) aa41f165 Separator: fixed cover all columns while called inside a table. (#4787, #205) 23ef6c14 Reworked modal/ctrl+tab dimming system to be entirely processed at end of the frame (backported 1dc3af3 from docking) da3a36ee Backport from docking branch: minor stuff. 78c6435d Inputs: (breaking wip) removed IsMouseTripleClicked() added recently (during 1.86 WIP), replaced with GetMouseClickedCount(). (#3229) 5c388c39 Backends: SDL_Renderer: Added support for large meshes (64k+ vertices) with 16-bit indices, enable 'ImGuiBackendFlags_RendererHasVtxOffset' in this backend. (#3926) 5b1a70aa Fixed RenderRectFilledWithHole() (used by docking) + added dummy EndFrameDrawDimmedBackgrounds() stub in master. 440824d4 Backends: Fixed early out on empty clip rect. In particular, DX12 backend would warn about it (others not so much). (#4775, #4464) f087a5b8 Metrics: Added a node showing windows in submission order and showing the Begin() stack. c5db2765 InputText, Nav: fixed tabbing through InputTextMultiline(). (#4761, #3092) 9d704d99 Internals: wrapped ImQsort() in an inline function + added a define guard. 66f0fb98 Inputtext, Nav: fixed using SetKeyboardFocusHere() on InputTextMultiline(). (#4761) 5ccb6679 Backends: WebGPU: Passing explicit buffer sizes as validation layers appears to not do what the in-flux specs says. (#4766 cb5c73f6 Fix: IM_DEBUG_BREAK macro on ARM GCC (#4767) 65f4be1a InputText: Internals: moved "apply_new_text" application code to reduce noise in a future commit (will be for #4714) + removed unused fields. 5ac25e7c InputText: fixed ReadOnly flag preventing callbacks from receiving the text buffer. (#4762) 4d9a3b19 Internals: Implement a continuable IM_DEBUG_BREAK on GCC for common archs. (#2673) 764f9e60 Fixed crash on right-click without modal, introduced by previous commit a3667f46, (#4729) a3667f46 Fixed tooltip in own viewport over modal from being incorrectly dimmed. (#4729) 3fde445b Misc: Added missing ImGuiMouseCursor_NotAllowed cursor for software rendering (when io.MouseDrawCursor is enabled). (#4713) d80a9123 Internals: move chunks of IsItemHovered() so upcoming commit can be less noisy. This commit should be a no-op (check by comparing without white-space changes) 2c29e391 Drag and Drop: BeginDragDropSource() with ImGuiDragDropFlags_SourceAllowNullID doesn't lose tooltip when scrolling. (#143) f8a806ad Tooltips, Internal: (Breaking) swapped parameter order to accomodate for future tooltip api rework. 7cd3cfa5 Demo: Add IMGUI_DEMO_MARKER (currently unused, but usage by altering GImGuiDemoMarkerCallback) (#3689) cad790d4 Nav: fixed backwrap tabbing wrap on sibling child windows with _NavFlattened flag. (#4449) e790fc0e Nav: prevent child from clipping items when using _NavFlattened and parent has a pending nav request. (#787) a9ea1ae8 Nav: fixing assert using Tab in a window without any tabbable element (#4449) eb02dcf8 Nav: enable move/resize window with keyboard in Ctrl+Tabbing windowing menu even without _NavEnableKeyboard. (#4023, #787). 8ce23b3c Nav: Ctrl+tabbing to cycle through windows is now enabled regardless of _NavEnableKeyboard. (#4023, #767) bce1ba40 Clipper: add ForceDisplayRangeByIndices (#3841, #3578) ebac3757 Docs: added info about Freetype, editing sponsors. 1a7526dc Nav, Tabbing: refactor tabbing system to support clipped items, scrolling, using nav queries. (#4449) f01a6d3e InputText, Nav: fixed repeated calls to SetKeyboardFocusHere() preventing to use InputText(). (#4682) 32779c5b Clipper: hotfix (amend 93cccd2, was broken) (#3841, #1725) 64daeddf Removed CalcListClipping() function. (#3841) 6a7e2c74 Clipper: remove ForceDisplayRangeByIndices/ForceDisplayRangeByPositions functions until we find a need for them, since #3841 is now solved automatically. 93cccd27 Clipper: bunch of rework. (#3841, #1725) cd1b5f78 Clipper: enhanced ImGuiListClipper (#3841) b409df34 Clipper: Fixed content height declaration slightly mismatching the one of when not using a clipper. 14466a6d Nav: Page/Home/End doesn't immediately restore highlight (before results comes) + pressing Esc to exit a child window re-enable the Nav highlight if it was disabled by mouse. 978598b1 Nav: pressing PageUp/PageDown/Home/End when in Menu layer automatically moves back to Main layer. + fixed resizing window from borders setting navigation to Menu layer. d1eb7b57 ScrollToItem: amend fully visible tests to take account of spacing used (fix nav in one axis scrolling back and forth between axises when space is tight by just < ItemSpacing*2) (#3692, #2812, #4242, #2900) eb654f1b Typo b1a68d89 Fix misplaced backtick in FAQ.md (#4669) a67f7dce Nav: relative rectangle positions are now stored relative to CursorStartPos to be independent of scrolling. Will facilitate rework of clipper (#3841) 8d361c47 Nav: rework NavEnableSetMousePos application so scrolling is applied more consistently in NavCalcPreferredRefPos() + moved at end of NavUpdate() after the last SetScroll have been done. 8361ed1f Nav: wrap abs<>rel rectangle conversions before we attempt to switch the reference point from window->Pos to window->DC.CursorStartPos. This commit should have no effect. 19c72cd5 Nav: fixed absolute mouse position (with NavEnableSetMousePos config flag) when using Home/End leads to scrolling. c363b6df Modals: fixed issue hovering popups inside a child inside a modal. Fixed IsWindowFocused()/IsWindowHovered() issues with childs inside popups. (#4676)(#4676, #4527) 0f2898ea Demo: Tree selection demo use !IsItemToggledOpen() (#1896) + update FAQ (#4366) 99552420 InputText: triple-click avoid scroll + include end of line character. (#2244) 126a6f89 InputText: made double-click select word, triple-line select line. Word delimitation logic differs slightly from the one used by CTRL+arrows. (#2244) 9c78fc92 Inputs: Mouse: Amend c8e3a01 for tracking multiple clicks, renaming. (#3229) 2318c764 Inputs: Mouse: Add support for tracking multiple clicks more than just double (#3229) 39b99072 ImVector: fix Clang warning (implicit conversion changes signedness: 'const ptrdiff_t' (aka 'const long long') to 'unsigned long long') ad3f54ff Examples: Emscripten comments (#4650, #4662), standardize readme 19c3773c Backends: Vulkan: Call vkCmdSetScissor() with a full-viewport at end of render. (#4644) bbd5119a Backends: Vulkan: comments about user using VK_DYNAMIC_STATE_VIEWPORT / VK_DYNAMIC_STATE_SCISSOR and not calling vkCmdSetViewport() / vkCmdSetScissor(). (#4644) e3bd9434 1.86 WIP + internals: tweaks table temp data code. 13cdf2ff CI: Add MinGW DLL builds, be03b8ff Misc: Fix build with MinGW when using IMGUI_API. git-subtree-dir: lib/imgui git-subtree-split: a8df192df022ed6ac447e7b7ada718c4c4824b41
From @simuuz
ocornut/imgui#3488 (comment)
I answered
The text was updated successfully, but these errors were encountered: