Register _trimListener via _register(MutableDisposable) so it is disposed when SelectionService is torn down. Use .value assignment on buffer activate instead of manual dispose/swap. Fixes #5914 Co-authored-by: Daniel Imms <Tyriar@users.noreply.github.com>