ISSUE: When editing properties that use a SSpinBox, e.g. SNumericEntryBox, using the mouse to drag the values up and down, it is possible that the viewport doesn’t update for some of the controls.
ANALYSIS: This happens occasionally, and randomly, because the SSpinBox widget doesn’t initialise it’s PreventThrottling slate arguments attribute and so gets set to random values (i.e. whatever happens to be on the stack). Typically this is non-zero and interaction appears to work normally, however if it initialises to zero then throttling happens and viewport updates stop and other systems Tick methods aren’t called. This is how I noticed the issue; since my project requires ticks to update the scene during interactive value edits.
WORKAROUND: Although I have a custom property panel and can access the SNumericEntryBox being used, the only workaround I found was to copy the SNumericEntryBox.h into my project, with a renamed class, and add a fix (set the spin box PreventThrottling attribute to true where it is constructed). I couldn’t find another way to inject the true value into the spin box as it’s a private field and the attribute is only used on construction, even though there is a SpinBox accessor on the SNumericEntryBox.
SUGGESTED FIX: The SSpinBox slate args structure should initialise the PreventThrottling to true to produce consistent and interactive editing behaviour. Also, the SNumericEntryBox should forward this argument to it’s own argument list to allow customisation of this behaviour.
VERSIONS: Discovered on 4.25, but source code is still the same on 5.0P2 so likely still an issue.