                     case .noBreakSpace:
                         // -> `boundingRect(forGlyphRange:in)` can occasionally not calculate the width of no-break space properly.
                         glyphWidth = self.textFont.width(of: "\u{00A0}")
+                    case .otherControl:
+                        glyphWidth = self.boundingBoxForControlGlyph(for: self.textFont).width
                     default:
                         let glyphRange = NSRange(location: glyphIndex, length: 1)
                         let boundingRect = self.boundingRect(forGlyphRange: glyphRange, in: textContainer)

            let glyphIndex = self.glyphIndexForCharacter(at: charIndex)
            
            let path: CGPath
            if let cache = pathCache[invisible] {
                path = cache
            } else {
                let glyphWidth: CGFloat

                }
                
                path = invisible.path(in: CGSize(width: glyphWidth, height: glyphHeight), isRTL: isRTL)
                if invisible != .tab {
                    pathCache[codeUnit] = path
                }
            }
            
