protected override void OnReallocate() { if (CurrentRow == null) { CurrentRow = TreeStore.GetFirstNode(); } var rowBounds = TreeView.GetRowBounds(CurrentRow.CurrentPosition, true); SetChildBounds(container, Bounds); container.Remove(drawer); container.PackStart(drawer); container.QueueForReallocate(); if (tracker != null) { SetChildBounds(tracker, rowBounds); tracker.QueueDraw(); } }