Преглед изворни кода

Disabled items more consistently release active id if the active item got disabled. (#211)

ocornut пре 4 година
родитељ
комит
29525255f3
2 измењених фајлова са 5 додато и 0 уклоњено
  1. 1 0
      docs/CHANGELOG.txt
  2. 4 0
      imgui_widgets.cpp

+ 1 - 0
docs/CHANGELOG.txt

@@ -56,6 +56,7 @@ Other Changes:
 - Drag and Drop: drop target highlight doesn't try to bypass host clipping rectangle. (#4281, #3272)
 - Menus: MenuItem() and BeginMenu() are not affected/overlapping when style.SelectableTextAlign is altered.
 - Nav: Disabled items are not candidate for default focus. (#211, #787)
+- Disabled: disabled mode more consistently release active id if the active item got disabled. (#211)
 - Fixed printf-style format checks on non-MinGW flavors. (#4183, #3592)
 - Fonts: Functions with a 'float size_pixels' parameter can accept zero if it is set in ImFontSize::SizePixels.
 - Fonts: Prefer using U+FFFD character for fallback instead of '?', if available. (#4269)

+ 4 - 0
imgui_widgets.cpp

@@ -611,6 +611,10 @@ bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool
         }
     }
 
+    // Release active id if turning disabled
+    if (g.ActiveId == id && (g.CurrentItemFlags & ImGuiItemFlags_Disabled))
+        ClearActiveID();
+
     // Process while held
     bool held = false;
     if (g.ActiveId == id)