Internal: ButtonBehavior: Tweak to update g.ActiveIdClickOffset more consistently
diff --git a/imgui.cpp b/imgui.cpp
index 75b6aa4..d952e28 100644
--- a/imgui.cpp
+++ b/imgui.cpp
@@ -6253,20 +6253,14 @@
{
SetActiveID(id, window); // Hold on ID
FocusWindow(window);
- g.ActiveIdClickOffset = g.IO.MousePos - bb.Min;
}
if (((flags & ImGuiButtonFlags_PressedOnClick) && g.IO.MouseClicked[0]) || ((flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDoubleClicked[0]))
{
pressed = true;
if (flags & ImGuiButtonFlags_NoHoldingActiveID)
- {
ClearActiveID();
- }
else
- {
SetActiveID(id, window); // Hold on ID
- g.ActiveIdClickOffset = g.IO.MousePos - bb.Min;
- }
FocusWindow(window);
}
if ((flags & ImGuiButtonFlags_PressedOnRelease) && g.IO.MouseReleased[0])
@@ -6286,6 +6280,8 @@
bool held = false;
if (g.ActiveId == id)
{
+ if (g.ActiveIdIsJustActivated)
+ g.ActiveIdClickOffset = g.IO.MousePos - bb.Min;
if (g.IO.MouseDown[0])
{
held = true;