В дополнение к предыдущему посту. Если мы сделаем разбивку на "вход-работа-выход" для текстовых объектов, то проблемы нам смогут создавать даже не какие-то хитрые Services.Action, а просто клавиатура. Ведь если мы в процессе выделения текста свободно выходим в цикл обработки оконных сообщений, то мы будем получать также и сообщения о нажатии клавиш. Это значит, что пользователь сможет одной рукой выделять текст, а другой рукой одновременно его редактировать, удалять и прочее. В общем-то, для пользователя это даже хорошо. Я просто хочу сказать, что проблемы мы получим самого разного плана, даже без введения дополнительных чатов и прочего.

Кстати, поскольку в текущей реализации цикл Rider.Input не вычищает из очереди сообщения от клавиатуры (а мышиные - вычищает), то нажатые во время выделения или перетаскивания текста символы будут "выплюнуты" нам в текст сразу после отпускания кнопки мыши. С точки зрения интерфейса это... сами понимаете, несколько странно, ведь у пользователя нет представления о "буфере сообщений". По крайней мере, в интерфейсе такое понятие отсутствует.

PS: По поводу текстов... Чем черт не шутит, может быть, что при введении режима выделения и прочих там код структурируется и упростится, уберутся повторы. Не знаю.