code: func (txt *Text) controlRune(r rune, dot pixel.Vec) (newDot pixel.Vec, control bool) {
  	switch r {
  	case '\n':
  		dot.X = txt.Orig.X
  		dot.Y -= txt.LineHeight
  	case '\r':
  		dot.X = txt.Orig.X
  	case '\t':
  		rem := math.Mod(dot.X-txt.Orig.X, txt.TabWidth)
  		rem = math.Mod(rem, rem+txt.TabWidth)
  		if rem == 0 {
  			rem = txt.TabWidth
  		}
  		dot.X += rem
  	default:
  		return dot, false
  	}
  	return dot, true
  }
docs: // controlRune checks if r is a control rune (newline, tab, ...). If it is, a new dot position and
  // true is returned. If r is not a control rune, the original dot and false is returned.