Apply is not active

Hello dear Paraview developers!

I have a filter with both a server side and a custom widget.

Custom widget uses client-server wrappings to call a widget’s function which itself calls python to select some points. Because of that, RequestData is somehow triggered and Apply button is not active.
Dear Mathieu has suggested to call this->Modified from within a filter, and it works, Apply is active again.

However, I also have custom widgets which use client-server wrappings to modify server values

stream << vtkClientServerStream::Commands::Invoke << VTKOBJECT(given_proxy)
    << std::string("SetX") << ...  << vtkClientServerStream::Types::End;

And when setX is actually called on the server, this->Modify() IS called.

But sadly enough, this Modify call does not make Apply button active

Could you please help me get Apply button active again?

Best regards,
Mike

Do not talk to the server directly, use a property instead.

<DoubleVectorProperty
	panel_widget="CustomWidget"	
	name="X"
	command="SetX"
	number_of_elements="1"
	default_values="0.0557"
	panel_visibility="advanced"
	label="Einstein X-factor">
</DoubleVectorProperty>

Could you clarify, please, if I write the following XML for my custom widget, what would I get in the constructor in smproxy

CustomWidget::CustomWidget( vtkSMProxy* smproxy, vtkSMProperty* smproperty, QWidget* parentObject)

Is it an object proxy for the filter object, or for the given element?

Is the recommended way to act is to call:
vtkSMPropertyHelper(smproxy, "X").Set(2);

Yes

If I use this line of code only, nothing happens.

If I add
given_proxy->UpdateVTKObjects();

The value is indeed updated

Apply is not activated, but RequestData and RequestDataObject are called

Sorry, I cant help much more witout looking at the code. You can find a working example here:

Examples/Plugins/PropertyWidgets/Plugin

https://gitlab.kitware.com/paraview/paraview/-/tree/master/Examples/Plugins/PropertyWidgets?ref_type=heads