message: ColorPicker4: Fixed returning true when holding mouse button on the sat/value/alpha locations.
diff: @@ -9885,7 +9885,7 @@ void ImGui::ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags)
  EndPopup();
  }
  -static void ColorPickerOptionsPopup(ImGuiColorEditFlags flags, float* ref_col)
  +static void ColorPickerOptionsPopup(ImGuiColorEditFlags flags, const float* ref_col)
  {
  bool allow_opt_picker = !(flags & ImGuiColorEditFlags__PickerMask);
  bool allow_opt_alpha_bar = !(flags & ImGuiColorEditFlags_NoAlpha) && !(flags & ImGuiColorEditFlags_AlphaBar);
  @@ -10169,6 +10169,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl
  flags |= (g.ColorEditOptions & ImGuiColorEditFlags_AlphaBar);
  // Setup
  + int components = (flags & ImGuiColorEditFlags_NoAlpha) ? 3 : 4;
  bool alpha_bar = (flags & ImGuiColorEditFlags_AlphaBar) && !(flags & ImGuiColorEditFlags_NoAlpha);
  ImVec2 picker_pos = window->DC.CursorPos;
  float square_sz = SmallSquareSize();
  @@ -10178,6 +10179,9 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl
  float bar1_pos_x = bar0_pos_x + bars_width + style.ItemInnerSpacing.x;
  float bars_triangles_half_sz = (float)(int)(bars_width * 0.20f);
  + float backup_initial_col[4];
  + memcpy(backup_initial_col, col, components * sizeof(float));
  +
  float wheel_thickness = sv_picker_size * 0.08f;
  float wheel_r_outer = sv_picker_size * 0.50f;
  float wheel_r_inner = wheel_r_outer - wheel_thickness;
  @@ -10293,7 +10297,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl
  ImVec4 ref_col_v4(ref_col[0], ref_col[1], ref_col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : ref_col[3]);
  if (ColorButton("##original", ref_col_v4, (flags & (ImGuiColorEditFlags_HDR|ImGuiColorEditFlags_AlphaPreview|ImGuiColorEditFlags_AlphaPreviewHalf|ImGuiColorEditFlags_NoTooltip)), ImVec2(square_sz * 3, square_sz * 2)))
  {
  - memcpy(col, ref_col, ((flags & ImGuiColorEditFlags_NoAlpha) ? 3 : 4) * sizeof(float));
  + memcpy(col, ref_col, components * sizeof(float));
  value_changed = true;
  }
  }
  @@ -10423,7 +10427,7 @@ bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags fl
  EndGroup();
  PopID();
  - return value_changed;
  + return value_changed && memcmp(backup_initial_col, col, components * sizeof(float));
  }
  // Horizontal separating line.
  