Not sure, but seems maybe $data[‘post_status’] would be set to ‘trash’ at that point. If so, then you could just do something like…
if ($data['post_status'] == 'trash') { return $data; }
…before the other manipulations.
EDIT
That code should work then – but needs to be at top of the function, like…
public function updatetitle($data) {
if ($data['post_status'] == 'trash') { return $data; }
if($data['post_type'] != $property->post_name || !$_POST[${$this->active_class_var_name}->noncefield] ):
return $data;
endif;
if($_POST['address'] && $_POST[$property->noncefield]):
$data['post_title']= ucfirst(sanitize_text_field($_POST['address'])).' '.
ucfirst (sanitize_text_field($_POST['town'])).' '.
ucfirst (sanitize_text_field($_POST['county']) );
endif;
return $data;
}
Your function in that case would simply return back the $data without making any other modifications to it.