Simplified TextEvent implementation