diff --git a/lib/src/widgets/quill/text_line.dart b/lib/src/widgets/quill/text_line.dart
index e26e5575..14ae2a09 100644
--- a/lib/src/widgets/quill/text_line.dart
+++ b/lib/src/widgets/quill/text_line.dart
@@ -66,7 +66,11 @@ class _TextLineState extends State<TextLine> {
     if (_metaOrControlPressed != newValue) {
       setState(() {
         _metaOrControlPressed = newValue;
-        _richTextKey = UniqueKey();
+        _linkRecognizers
+          ..forEach((key, value) {
+            value.dispose();
+          })
+          ..clear();
       });
     }
   }