public void GetExtents(Gtk.TextIter iter, out Gtk.TextIter start, out Gtk.TextIter end) { start = iter; if (!start.BeginsTag(this)) { start.BackwardToTagToggle(this); } end = iter; end.ForwardToTagToggle(this); }
public void Split(Gtk.TextIter iter, Gtk.TextBuffer buffer) { foreach (Gtk.TextTag tag in iter.Tags) { NoteTag noteTag = tag as NoteTag; if (noteTag != null && !noteTag.CanSplit) { Gtk.TextIter start = iter; Gtk.TextIter end = iter; // We only care about enclosing tags if (start.TogglesTag(tag) || end.TogglesTag(tag)) { continue; } start.BackwardToTagToggle(tag); end.ForwardToTagToggle(tag); AddSplitTag(start, end, tag); buffer.RemoveTag(tag, start, end); } } }