When it updates the red channel, the Simple Construction Script (SCS) gets re-run (via AActor::RerunConstructionScripts) on the Blueprint Actor instance generating new instances of all its components. This leads to UEditorEngine::NotifyToolsOfObjectReplacement getting called as there's a mapping of the old components to the new ones. Which ultimately leads to SDetailsView::PostSetObject getting called, which has specific code for closing the color picker if SColorPicker::OptionalOwningDetailsView is invalid or doesn't match the invoking SDetailsView. SColorPicker::OptionalOwningDetailsView isn't set when the color picker is first opened in FCustomPrimitiveDataCustomization::OnMouseButtonDownColorBlock, so this means it's always closed.

Steps to Reproduce

issues working with the color picker and StaticMesh custom primitive data on Blueprint Actor instances in editor.

  1. The color picker immediately closes upon selecting any color.
  2. Only the first custom primitive data float (in this case the red channel of the color) is updated.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-193655 in the post.

Login to Vote

ComponentUE - Graphics Features
Affects Versions5.3
Target Fix5.4
Fix Commit28266265
Main Commit28266291
CreatedAug 23, 2023
ResolvedSep 27, 2023
UpdatedOct 2, 2023