method set_user_text s =
      ignore_text_changed <- true;
      let it = buffer#get_iter (`OFFSET editable_from) in
      buffer#delete ~start: it ~stop: buffer#end_iter;
      buffer#insert ~iter: buffer#end_iter s;
      ignore_text_changed <- false;
      self#set_size;
      self#on_text_changed