ColorButton, ColorEdit, ColorPicker: fixed an issue rendering colors when inside a BeginDisabled(false) block. (#9511, #9613, #9614)
diff --git a/docs/CHANGELOG.txt b/docs/CHANGELOG.txt
index 23b05b5..a58b03b 100644
--- a/docs/CHANGELOG.txt
+++ b/docs/CHANGELOG.txt
@@ -98,6 +98,10 @@
     end of storage when trailing items are unselected (#9604) [@MilosLord]
 - Drags: fixed handling of `ImGuiSliderFlags_WrapAround`: value could temporarily
   escape the range when dragging fast. (#9612, #9611, #7749) [@swayie, @ocornut]
+- ColorEdit:
+  - ColorButton, ColorEdit, ColorPicker: fixed an issue rendering colors when
+    inside a `BeginDisabled(false)` block, caused by the alpha cancelling-out
+    code in 1.93.0. (#9511, #9613, #9614) [@tksuoran]
 - ImVec2: added a check for cases where a custom `IM_VEC2_CLASS_EXTRA` macro
   adds an extra `operator=` to ImVec2. This isn't supported but should not
   be needed as you should have a constructor to convert from your type to ImVec2.
diff --git a/imgui_widgets.cpp b/imgui_widgets.cpp
index 62bff58..91f0d0f 100644
--- a/imgui_widgets.cpp
+++ b/imgui_widgets.cpp
@@ -6217,7 +6217,8 @@
     g.NextItemData.ClearFlags();
 
     const float backup_alpha = g.Style.Alpha;
-    if (g.DisabledStackSize > 0)
+    const bool is_disabled = (g.CurrentItemFlags & ImGuiItemFlags_Disabled) != 0 && (g.DisabledStackSize > 0); // Intentionally not check ItemFlagsSet
+    if (is_disabled)
         g.Style.Alpha = g.DisabledAlphaBackup; // Cancel out effect of BeginDisabled() for color swatches.
 
     PushID(label);
@@ -6579,7 +6580,7 @@
         g.ColorEditCurrentID = 0;
     PopID();
 
-    if (g.DisabledStackSize > 0)
+    if (is_disabled)
         g.Style.Alpha = backup_alpha;
 
     return value_changed;
@@ -6620,7 +6621,8 @@
     const bool is_mixed = (g.LastItemData.ItemFlags & ImGuiItemFlags_MixedValue) != 0;
 
     const float backup_alpha = g.Style.Alpha;
-    if (g.DisabledStackSize > 0)
+    const bool is_disabled = (g.CurrentItemFlags & ImGuiItemFlags_Disabled) != 0 && (g.DisabledStackSize > 0); // Intentionally not use LastItemData.ItemFlags here.
+    if (is_disabled)
         g.Style.Alpha = g.DisabledAlphaBackup; // Cancel out effect of BeginDisabled() for color swatches.
     if (is_mixed)
     {
@@ -6648,7 +6650,7 @@
         else
             window->DrawList->AddRectFilled(bb.Min, bb.Max, GetColorU32(col_source), rounding);
     }
-    if (g.DisabledStackSize > 0)
+    if (is_disabled)
         g.Style.Alpha = backup_alpha;
     RenderNavCursor(bb, id);
     if ((flags & ImGuiColorEditFlags_NoBorder) == 0)